1

我已经安排了一个 SQLserver 代理作业,该作业执行一个调用批处理启动的 PowerShell 脚本。但是,当执行 PowerShell 时,它没有等待批处理文件完成,然后才转到下一个作业步骤。在继续之前,我该怎么做才能让它“等待”批处理文件完成?

这是命令:

  ([WMICLASS]"\\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat") 
4

1 回答 1

2

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
}
于 2017-03-29T17:40:19.500 回答