Powershell - 在外部程序运行时暂停脚本

时间:2012-01-17 22:25:15

标签: powershell

我有一个powershell脚本,可以执行一些所有需要按顺序完成的事情。目前我正在使用此代码运行一些外部程序(假设我在正确的目录中)

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

我遇到的问题是这些都将按顺序运行,而不是等到前一个完成。有没有办法让他们等到上一个程序结束?

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

(".\program1.exe", ".\program2.exe", ".\program3.exe") | % { & $_ }

将所有程序粘贴在数组中。然后通过执行它们的foreach循环运行数组。