我想同时在PowerShell中执行多个外部脚本,然后等待所有脚本完成再继续。目前我正在使用'start-process -NoNewWindow ...'命令行开关,它循环遍历所有子进程,但随后终止。
我找到了许多等待1个进程完成的方法(这显然是微不足道的)但是它们似乎都不能解决我的问题。
在PowerShell中拥有UNIX version的等价物肯定是我要找的。 p>
答案 0 :(得分:30)
并且不要忘记可能是为多个进程执行此操作的最直接的方法 - Wait-Process
例如:
$procs = $(Start-Process Notepad.exe -PassThru; Start-Process Calc.exe -PassThru)
$procs | Wait-Process
答案 1 :(得分:6)
您是否检查过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