2017-04-11 10 views
2

私は、データを処理して出力を保存しているPowershellにいくつかのパイプラインを持っているとしましょう。私は、このランニングを開始し、Ctrl-Cを押した場合 例えばパイプラインを破って部分的な結果を保持する

$results = $data | ? {$_.Value -gt 20} | % {Invoke-EXE} 

、$結果はnullになります。このコマンドを開始した後にこのコマンドを停止し、これまでに生成された結果を保持する方法はありますか?
私はファイルにパイプすることができたことを知っています。しかし、私のパイプラインはすでに稼動しています。

+0

は、それは私のコマンドですが、実際にexeファイル(ないPowerShellの)。それが変わると私は%を逃しました。私の質問を更新する – Fai

答えて

2

私は、これはあなたが探しているものであると信じて:

http://scriptlore.com/powershell/outvariable/

基本的に自分の出力を発生するコマンドに-outvariable xを追加します。あなたのケース

$null = $data | ? {$_.Value -gt 20} | % {Invoke-EXE} -OutVariable results 
+0

私はこれについて考えましたが、同じ問題があると考えました。しかしそうではありませんが、中断されても機能します。よくやった! – briantist

+0

私は彼が探していたものよりも信じているので、私はあなたの投稿を編集しました(結果が何であっても '$ results'変数を記入してください)。 'ForEach-Object'に' -OutVariable'を加えることで、出力を1つの変数で利用可能なものとして継続的に収集することができます。 – briantist

+0

私はあなたが正しいと信じています。自分自身がかなり新しくなっていて、パイプラインは私をしばしば混乱させます... –

関連する問題