Как сказать PowerShell ожидать каждой команды для окончания прежде, чем запустить следующее?

Для Microsoft SQL Server, существует Демонстрационный DB Northwind и AdventureWorks.

198
задан CJBS 8 May 2019 в 09:31
поделиться

1 ответ

Обычно для внутренних команд PowerShell ждет перед запуском следующей команды. Единственным исключением из этого правила является EXE на основе внешней подсистемы Windows. Первый трюк заключается в конвейере до Out-Null следующим образом:

Notepad.exe | Out-Null

PowerShell будет ждать завершения процесса Notepad.exe перед продолжением. Это изящно, но немного тонко, чтобы понять, читая код. Вы также можете использовать Start-Process с параметром -Wait:

Start-Process <path to exe> -NoNewWindow -Wait

Если вы используете версию PowerShell Community Extensions, это:

$proc = Start-Process <path to exe> -NoWindow
$proc.WaitForExit()

Другой вариант в PowerShell 2.0 - использовать фоновое задание:

$job = Start-Job { invoke command here }
Wait-Job $job
Receive-Job $job
340
ответ дан 23 November 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: