PowerShell [wmiclass] Win32_Process.Create() затем дождитесь завершения пакетного файла
Я запланировал задание агента SQLserver, которое выполняет сценарий PowerShell, который вызывает пакетный процесс для запуска. Однако при запуске PowerShell он не дождался завершения пакетного файла, прежде чем перейти к следующему шагу задания. Что я могу сделать, чтобы "подождать", пока пакетный файл не завершится, прежде чем двигаться дальше?
это команда:
([WMICLASS]"\\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat")
1 ответ
Решение
Create
метод вернет ProcessId
процесса, который он создает. Вы можете проверить, завершился ли этот процесс с помощью Get-Process
$process = ([WMICLASS]"\\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat")
while ((Get-Process -Id $process.ProcessId -ErrorAction SilentlyContinue) -ne $null) {
write-host "waiting"
sleep 2
}