私が見つけたのは、次の関数を書くときです。
function test {
Write-Host ($input | Measure-Object).Count
Write-Host ($input | Measure-Object).Count
}
サンプル入力あり:
dir | test
コンソールに書き込みます:
18
0
Measure-Objectへの最初のパイプが$inputを上書きするためだと思います。新しい配列を作成してそれを渡す回避策を知っています。
function test {
$inp = @($input)
Write-Host ($inp | Measure-Object).Count
Write-Host ($inp | Measure-Object).Count
}
しかし、私は新しい変数を導入しているので、それは好きではありません。$ inputに影響を与えずに、コマンドレットにパイプする方法はありますか?