Использование команды start-process и-wait в Powershell

Я новичок в Powershell и не имею большого опыта программирования, просто пытаюсь использовать его для упаковки программного обеспечения. Во всяком случае, я узнал о команде start-process с параметром-Wait, и она отлично работает для большинства вещей. Однако я заметил, что он не только ждет процесса, который вы укажете, он ждет любых подпроцессов, даже после того, как основной процесс больше не работает. Обычно это хорошо, но у меня странная ситуация. Я запускаю сложный пакет Oracle файл с началом процесса. Пакетный файл в конечном итоге запускает setup.exe, которого я действительно хочу ждать, но другие процессы тоже порождают, которые никогда не останавливаются. Поэтому, если я использую параметр-wait, скрипт никогда не останавливается даже после установки.exe больше не работает. Ближайший, который я нашел, использует это:

saps -FilePath "Pathconfig.bat" -ArgumentList "arguments"
Start-Sleep -s 10
Wait-Process -Name "setup"

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

1 ответов


вы можете использовать эту команду просто :

$myprocss = Start-Process "powershell" -PassThru 
$myprocss.WaitForExit()

эта команда будет продолжена, когда процесс закончится .