通常、内部コマンドの場合、PowerShell は次のコマンドを開始する前に待機します。この規則の 1 つの例外は、外部 Windows サブシステム ベースの EXE です。Out-Null
最初のトリックは、次のようにパイプラインすることです。
Notepad.exe | Out-Null
PowerShell は、続行する前に Notepad.exe プロセスが終了するまで待機します。それは気の利いたものですが、コードを読んで理解するのは微妙です。Start-Process
次の-Wait
パラメーターを使用することもできます。
Start-Process <path to exe> -NoNewWindow -Wait
PowerShell Community Extensions バージョンを使用している場合は、次のとおりです。
$proc = Start-Process <path to exe> -NoNewWindow -PassThru
$proc.WaitForExit()
PowerShell 2.0 のもう 1 つのオプションは、バックグラウンド ジョブを使用することです。
$job = Start-Job { invoke command here }
Wait-Job $job
Receive-Job $job