当ブログの記事は(特に公開直後は)頻繁に改定される場合があることをご了承ください。2014-05-22パイプライン処理の後始末をしようPowerShellパイプライン対応、してますか?軽めの記事をもう一つ。回実行されるという流れになります。そのため、パイプライン入力に対しては、最後の要素しか渡されない点に注意しましょう。つのパターンがあると考えます。主体型の説明をしてしまいます。ブロックで主な処理をするタイプです。ように、配列全体を見ないと結果が出せないようなコマンドがこれにあたります。その性質上、コマンドの出力をパイプラインでさらに次につなげても、一旦ここで処理が止まります。ブロックでは、集計等の準備をすることになるでしょう。処理し、(もしあれば)次のパイプラインに流していくタイプです。ついては最後に簡単に解説します。いうのが、本稿の主題となります。回だけ行えばよく、かつ、それなりに処理コストがかかるようなことをするということになるでしょうか。その対極にあたる後始末を行うことになります。コマンドのようなものを想像してみるとよいでしょう。ファイルを閉じるという動作をします。中で毎回行っても動くには動きますが、パフォーマンス的に不利になるのは自明です。スコープで囲むのがお約束です。スコープを使えば、処理中に例外が発生したとしても(もちろん正常終了した場合もですが)、確実に解放してくれます。ような挙動を期待すると裏切られます。ブロックは実行されません。大事なことなのでもう一回言います。ブロックは実行されません。適切な処理ができない場合もあるでしょう。呼ばれてしまう方が嫌な仕様かもしれません。必要なものは少数派なのですし。主体型の処理では、例外発生時の後始末を自分でやらないといけません。すればいいでしょうか。