Powershell - приостановить выполнение сценария во время работы внешней программы - PullRequest
2 голосов
/ 18 января 2012

У меня есть сценарий powershell, который выполняет несколько вещей, которые должны выполняться последовательно. В настоящее время я использую этот код для запуска нескольких внешних программ (предположим, я в правильном каталоге)

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

Проблема, с которой я столкнулся, заключается в том, что все они будут работать последовательно, не дожидаясь окончания предыдущего. Есть ли способ заставить их ждать до завершения предыдущей программы?

Ответы [ 2 ]

5 голосов
/ 18 января 2012

Большинство процессов заставят 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"
0 голосов
/ 18 января 2012
(".\program1.exe", ".\program2.exe", ".\program3.exe") | % { & $_ }

Вставьте все программы в массив.Затем запустите массив через цикл foreach, который их выполняет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...