Ответ 1
И не забывайте, что, возможно, это самый простой способ сделать это для mulitple процессов - Wait-Process
например:
$procs = $(Start-Process Notepad.exe -PassThru; Start-Process Calc.exe -PassThru)
$procs | Wait-Process
Я хочу выполнить несколько внешних скриптов в PowerShell одновременно, а затем дождаться завершения всех этих действий перед продолжением. В настоящее время я использую команду "start-process -NoNewWindow...", которая обрабатывает все дочерние процессы, но затем завершается.
Я нашел много способов дождаться завершения одного процесса (это, очевидно, тривиально), но ни один из них не работает как решение для моей проблемы.
Наличие эквивалента для UNIX версии в PowerShell определенно будет тем, что я ищу.
И не забывайте, что, возможно, это самый простой способ сделать это для mulitple процессов - 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