オブジェクトパイプラインでの配列(Collection)の受け渡し
問題
以下のコードを実行してみるとパイプラインを通ってきたオブジェクトの数が増えてしまっていることが分かります。(3個から6個に)
PS > function a([int]$i) { return @($i, ($i+1)) } ; 1..3 | %{ a $_ } | measure Count : 6
解決法
これを回避するためには関数内のreturn式で配列の前にカンマを書きます。
PS > function a([int]$i) { return ,@($i, ($i+1)) } ; 1..3 | %{ a $_ } | measure Count : 3