2012-01-17 18 views
2

私は、すべてを逐次的に完了する必要があるいくつかのことを行うpowershellスクリプトを持っています。現在、私は私が午前問題は、これらがすべて順次実行されるということです前の1が終了するまで待機していないPowershell - 外部プログラムの実行中にスクリプトを中断する

.\program1.exe 
.\program2.exe 
.\program3.exe 

(仮定私は正しいディレクトリにしています)夫婦外部プログラムを実行するには、このコードを使用しています。以前のプログラムが終了するまで待機させる方法はありますか?

答えて

5

ほとんどのプロセスは、PowerShellが完了するまで、Oracleのインストーラのような何かかファンキーでない限り、待機します。

あなたは試みることができる:

Start-Process -FilePath program1.exe -Wait

これは、あなたがこのような何か必要がある場合があります動作しない場合:

& program1.exe 
while ($true) { 
    Start-Sleep -Seconds 1 
    if (-not (Get-Process -Name program1 -ErrorAction SilentlyContinue)) { 
     break 
    } 
} 
"...continue here" 
0
(".\program1.exe", ".\program2.exe", ".\program3.exe") | % { & $_ } 

アレイ内のすべてのプログラムをスティックを。その後、それらを実行するforeachループを通して配列を実行します。

関連する問題