暂停脚本,直到同时命令结束

时间:2016-06-24 04:37:39

标签: powershell

我在powershell脚本中创建了两个作业:

$job1= Start-Job {
[Diagnostics.Process]::Start("service", $var1 $var2 $var3)
[Diagnostics.Process]::Start("service", $var1 $var2 $var3)
}

$job2= Start-Job {
[Diagnostics.Process]::Start("service", $var1 $var2 $var3)
[Diagnostics.Process]::Start("service", $var1 $var2 $var3)
}

我希望job1中的进程在启动job2之前完成。我曾尝试过等待工作,获得工作等待作业,但是当我运行“接收作业”时,它会显示作业已完成。我假设即使打开了两个新的cmd窗口并且作业仍然在运行,但在工作技术运行后它认为它已完成。

如何让PowerShell识别这些窗口仍处于打开/运行状态,以便在完成之前不会继续?

1 个答案:

答案 0 :(得分:0)

将您的来电更改为

$p1 = [Diagnostics.Process]::Start("service", $var1 $var2 $var3)
$p2 = [Diagnostics.Process]::Start("service", $var1 $var2 $var3)
$p1.WaitForExit()
$p2.WaitForExit()

这将确保您的工作在开始完成的流程之前不被视为已完成 有了这些,您就可以在Wait-Job上使用$job1等到那里的流程完成。