PowerShellで複数の外部スクリプトを同時に実行し、すべてが完了するのを待ってから続行したいと思います。現在、すべての子プロセスをループして終了する「start-process -NoNewWindow ...」コマンドレットを使用しています。
1つのプロセスが終了するのを待つ方法はたくさんありますが(これは明らかに些細なことです)、どれも私の問題の解決策として機能していないようです。
PowerShellで NIXバージョン に相当するものがあることは間違いなく私が探しているものです。
そして、複数のプロセスに対してこれを行うためのおそらく最も簡単な方法を忘れないでください-Wait-Process
例:
$procs = $(Start-Process Notepad.exe -PassThru; Start-Process Calc.exe -PassThru)
$procs | Wait-Process
PowerShell v2のバックグラウンドジョブ機能を確認しましたか?
$job = Start-Job -Name "Proc1" -ScriptBlock { Sleep 10000 }
Wait-Job -Job $job
また、Start-Processには-waitというパラメーターがあります。指定すると、Start-Processは子が終了するのを待ちます。
Start-Process -FilePath calc.exe -Wait