PowerShell [wmiclass] Win32_Process.Create()然后等待批处理文件完成

时间:2017-03-29 15:48:28

标签: windows powershell batch-file sql-agent-job get-wmiobject

我已安排一个SQLserver代理作业,该作业执行调用批处理启动的PowerShell脚本。但是,执行PowerShell时,它不会等到批处理文件完成,然后再转到下一个作业步骤。我能做些什么来等待"等待"要在继续之前完成批处理文件?

这是命令:

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

1 个答案:

答案 0 :(得分: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
}