簡體   English   中英

在PowerShell中等待所有子進程完成

[英]Waiting in PowerShell for all child processes to finish

我想同時在PowerShell中執行多個外部腳本,然后等待所有這些腳本完成后再繼續。 目前我正在使用'start-process -NoNewWindow ...'命令行開關,它循環遍歷所有子進程,但隨后終止。

我找到了很多方法等待1個進程完成(這顯然是微不足道的)但是它們似乎都不能解決我的問題。

在PowerShell中擁有UNIX版本的等價物肯定是我想要的。

並且不要忘記可能是為多個進程執行此操作的最直接的方法 - 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM