1

過去に Wait-Process を使用したことがありますが、正常に動作します。今回は、Visual Studio を正常に閉じようとしています (保存されていないファイルを保存する時間を確保します)。それが完了すると、メモ帳が開きます。

(Get-Process devenv).CloseMainWindow() | 待機プロセス | メモ帳

残念ながら、Visual Studio は正常に終了しますが、ファイルの保存ダイアログと同時にメモ帳が表示されます。この場合、Wait-Process が正常に機能しないのはなぜですか。現時点では理解できないpowershellエラーが伴います。

Wait-Process : コマンドがパイプライン入力を使用しないか、入力とそのプロパティがパイプライン入力を使用するパラメーターのいずれとも一致しないため、入力オブジェクトをコマンドのパラメーターにバインドできません。行:1 文字:54 (Get-Process devenv).CloseMainWindow() | 待機プロセス <<<<

しかし、私は多くの DoSomethingA | を行ってきました。待機プロセス | 動作する DoSomethingB コマンド。ここで別のシナリオを理解できません。

4

2 に答える 2

2

CloseMainWindow は、Wait-Process にパイプされたブール値を返しますが、Wait-Process はブール値ではなくプロセス オブジェクトを想定しています。これを試してみてください

Get-Process devenv | ForEach-Object {
    $null=$_.CloseMainWindow()
    Wait-Process -Id $_.id
    notepad
}
于 2012-09-19T10:48:07.680 に答える
2

このようにしてみてください:

Get-Process devenv | % {$_.CloseMainWindow()}; wait-process devenv -ea silentlycontinue ; notepad
于 2012-09-19T13:23:38.377 に答える