PowerShell

できたできた

今日はもう寝るので忘れないようにメモ - 気楽に諸々 が出来た>< dir 'C:\Program Files\' | % { $_ | Add-Member 'NoteProperty' 'TotalSize (MB)' $( $_ | dir -Recurse -Force | ? { !$_.PSIsContainer } | Measure-Object 'Length' -Sum | % { [int]($…

今日はもう寝るので忘れないようにメモ

Program Files フォルダ直下の各フォルダを、サイズの大きい順に並べて、上位 5 件のディレクトリ名とサイズ (単位MB) をテーブル形式で表示するための PowerShell スクリプトを書く。 できればワンライナーでやりたい。 あ、PowerShell のリハビリを兼ねて…

ん、

V2 CTP3 でたみたいだMicrosoft Download Center: Windows, Office, Xbox & More

Subversion の関連付けを削除

param ($solutionDirectoryPath) Get-ChildItem $solutionDirectoryPath -Include ".svn" -Recurse -Force | Remove-Item -Recurse -Force;

関数の戻り値の扱い

[void]をいつも忘れる - 潜在推力横着する方法を考えてみた>< function Sample { $result = @($Null); &{ 1; 2; $result[0] = @('hoge'); } | Out-Null; return $result; } (Sample)[0] -eq 'hoge';イマイチかなー

Ω ΩΩ< な、なんだってー!!

[雑記]ブラッディ・マンデイでハッキングしてるときのコマンド今度見てみよっと!

LocalPrinterServer クラスが PowerShell からだと使えないお

PS C:\> $lps = New-Object "System.Printing.LocalPrintServer" @() PS C:\> $lps.DefaultPrintQueue PS C:\> $() -eq $lps.DefaultPrintQueue True PS C:\> $lps.get_DefaultPrintQueue() "0" 個の引数を指定して "get_DefaultPrintQueue" を呼び出し中に…

これは嬉しい

.NETアプリケーションから7-Zipの圧縮/解凍機能を使用する そのうち触ってみよっと。

PowerShell V2.0

最近ようやくちょこちょこ触っているのだけれど、V1.0 の時の不満が色々解消されてるなー。 特に、↓が期待通りに動くのはうれしい。 $s = { param ($a, $b) return $a + $b; }; $s.Invoke(1, 1); # 2 $o = New-Object "PSObject" Add-Member -InputObject $o…

PowerShell from Japan!!

HIRO さんが先日立ち上げられた、PowerShell 情報発信サイト「PowerShell from Japan!!」。 僕も Author として参加させてもらうことにしたけど、まだ、どういう感じで書いていけばいいのか掴めてないので様子見 ^^; でもそろそろネタを投稿したいトコだ

没な実装

こっちの方が好きなんだけど、パフォーマンスが悪いから没。 せっかくだから記事に残しておく。 こっちはスクリプトを正規表現で解析して param の後に直接環境ロード処理を割り込ませている。 function global:closure { param ([ScriptBlock]$private:scri…

PoSH クロージャ今度こそ完成

前回のバージョンでは未対応だった、クロージャ生成毎にグローバルハッシュテーブルに追加されていく問題に対応。(正確には、不要になっても GC に回収されない問題。) ついでにリファクタリングもしといた。 そろそろあっちのブログで記事にすると思う。 fu…

PoSH でクロージャとりあえずできた

(コレの続き。) クロージャ生成するたびにグローバルなハッシュテーブルに追加されていくし、一つ上のスコープしか保存しないし、引数 5 つまでしか使用できないけど。 (2 点目, 3 点目は改善の余地あり。) # 2 点目は勘違いだった。 # でもスコープ絡みの別…

PoSH でメモ化できた〜

これを使ってこちらの Memoize メソッドを PoSH に移植 (ジェネリックは除去されるが) 。 function Memoize { param ([ScriptBlock]$fn) trap { break; } $dic = @{}; $result = closure { param ($x) if (!$dic.ContainsKey($x)) { $dic.Add($x, (&$fn $x))…

PoSH でクロージャを実現

(コレの続き)とりあえず完成。 引数の指定可能数の制限をなくし、残りのスコープ絡みの問題も解決。 # クロージャ生成毎にグローバルハッシュテーブルに追加されていく問題は未対応。せめて弱参照はその内導入したいトコ。 function global:closure { param …

PoSH でクロージャ

できない。でもやりたい。 例えばこんな風に書きたい。 closure Hoge { param ([int]$i1, [int]$i2) return $i1 * $i2; } closure Fuga { param ([int]$i1) $result = closure { param ([int]$i2) return (Hoge $i1 $i2); }; return $result; } $f = Fuga 2;…

PowerShell を略して

PoSH と呼ぶみたい。 で、Pash という Linux や Mac 等で使用できる PoSH の開発が始まっているらしい。http://blogs.msdn.com/powershell/archive/2008/04/08/powershell-on-linux-solaris-mac-etc.aspx pash download | SourceForge.net

スクリプトコンテスト締切間近

まだ作品送ってなかったり。 今度の土日が勝負か。

スクリプトブロックの実行方法による実行速度の差異

[ 速い ] . 演算子 Invoke メソッド, InvokeReturnAsIs メソッド & 演算子 [ 遅い ] てきとーな計測に基づく。

スクリプトコンテスト

今興味あるのはこれ一つ。 PofEAA に向けていたものはすべて PowerShell に向けている。 作品が完成したらまた PofEAA に戻ると思う。

証明書を削除

しょーがないからこうする $targetStore = Get-Item "cert:\currentuser\my"; $targetCert = (Get-ChildItem "cert:\currentuser\my" | ? {$_.Subject -eq "CN=Test Certificate";} ); $targetStore.Open("ReadWrite"); $targetStore.Remove($targetCert); $…

証明書プロバイダが

Remove-Item をサポートしてない orz

Write-Host コマンドレットに

40KB くらいの文字列を渡したらWrite-Host : 現在のカーソル位置でコンソール出力バッファを書き込み中に Win32 内部エラー "このコマンドを実行するのに十分な記憶域がありません。" 0x8 が発生しました。Microsoft サポート サービスにお問い合わせくださ…

できないけど

PSObject はシングルトン的(?)には扱われないみたい。 こんな関数がこちらの期待通りに動作してくれたら、ちょっと面白かったんだけど。 function Hoge { $h = [PSObject]$Function:Hoge; if (!$h.Fuga) { $h | Add-Member "NoteProperty" "Fuga" ([DateTime…

PSObject プロパティ

$s = ""; $s -is [PSObject]; [void]$s.PSObject; $s -is [PSObject]; この動きはヤだ。 なんか理由ありそうだけど。

問題解決における 3 種の神器

Visual Studio PowerShell Reflector Reflector は逆コンパイルが全てじゃない。