PowerShell [wmiclass] Win32_Process.Create() 然后等待批处理文件完成
PowerShell [wmiclass] Win32_Process.Create() then wait for batch file to complete
我已经安排了一个 SQLserver 代理作业,该作业执行调用批处理启动的 PowerShell 脚本。但是,当执行 PowerShell 时,它并没有等待批处理文件完成就进入下一个作业步骤。我该怎么做才能使批处理文件 "wait" 在继续之前完成?
这是命令:
([WMICLASS]"\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat")
Create
方法将 return 它创建的进程的 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
}
我已经安排了一个 SQLserver 代理作业,该作业执行调用批处理启动的 PowerShell 脚本。但是,当执行 PowerShell 时,它并没有等待批处理文件完成就进入下一个作业步骤。我该怎么做才能使批处理文件 "wait" 在继续之前完成?
这是命令:
([WMICLASS]"\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat")
Create
方法将 return 它创建的进程的 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
}