以前書いたPowerShell: ◆サブフォルダーの容量を求めると同じことをMSDNのサンプルでやっていたので比較してみる。
PowerShell で which、PowerShell で du ... | 今週の How-To | MSDN
function dusage{ |
再帰しながらファイルを読み込みMeasure-ObjectでLengthをサマリーするというのは基本的に同じ。
違いとしては、ファイルを読み込むときForceスイッチを指定して隠しファイルも取得できるようにしている。
目的を考えると確かにそのほうが良いだろう。
また、出力用のObjectを自前で作りAdd-Memberでプロパティを追加している。
まぁ、これはどちらでも良い気がする。
ここで参考にしたいのがAdd-Memberに指定しているPassThruパラメータの使い方。Helpを読んでも今一つ使い道が分かっていなかったが、この例をみるとよくわかる。
Add-Memberは入力パイプラインから入ってきたObjectにプロパティを追加しているのだが、本来こいつは出力を持たないので、PassThruスイッチを指定して、プロパティ追加後のObjectを次のパイプラインへと送っている。
もう一つ参考にしたいのがFilterの使い方。
いままでFilterってFunctionと同じ?と思っていたのだが、若干違うみたい。
Where-Objectで書くような処理で汎用的なものをFilterとして作っておけば便利なのかな。
PassThruについては、Start-ProcessのようにそのままではProcessオブジェクトを返さないが、PassThruスイッチを付けることにより開始したProcessオブジェクトを返してくれるようなコマンドもある。
0 件のコメント:
コメントを投稿