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

标签 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") 

最佳答案

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
}

关于windows - PowerShell [wmiclass] Win32_Process.Create() 然后等待批处理文件完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43098319/

相关文章:

windows - 如何防止进程启动?

c++ - Qt Creator 找不到标题(说 : "No such file or directory")

arrays - 数组返回第一个元素 char 而不是整个元素

powershell - 如何仅在 vscode 中在 powershell 中运行特定任务

batch-file - 在 Windows 上通过 Cygwin 运行 shell 脚本

command-line - 批处理文件中的字符串替换

windows - 如何运行 PowerShell 脚本

java - 无法从 Windows 连接到远程 HDFS

powershell 强制使用 ssl 版本 3 来获取请求

windows - 批处理文件变量文件名和编辑