我在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识别这些窗口仍处于打开/运行状态,以便在完成之前不会继续?
答案 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
等到那里的流程完成。