Подтвердить что ты не робот

Ожидание в PowerShell для всех дочерних процессов

Я хочу выполнить несколько внешних скриптов в PowerShell одновременно, а затем дождаться завершения всех этих действий перед продолжением. В настоящее время я использую команду "start-process -NoNewWindow...", которая обрабатывает все дочерние процессы, но затем завершается.

Я нашел много способов дождаться завершения одного процесса (это, очевидно, тривиально), но ни один из них не работает как решение для моей проблемы.

Наличие эквивалента для UNIX версии в PowerShell определенно будет тем, что я ищу.

4b9b3361

Ответ 1

И не забывайте, что, возможно, это самый простой способ сделать это для mulitple процессов - Wait-Process например:

$procs = $(Start-Process Notepad.exe -PassThru; Start-Process Calc.exe -PassThru)
$procs | Wait-Process

Ответ 2

Вы проверяли функцию фоновых заданий в 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