2

为了在另一个作业完成而不阻塞当前会话时做一些工作,我想创建一个等待另一个作业的作业,但是当创建第二个作业时,它无法检测到第一个作业。

$Job = Start-Job -ScriptBlock { Start-Sleep -Seconds 30 }
Start-Job -ScriptBlock { param([int]$JobId)  Wait-Job -Id $JobId; [Console]::Beep() } -ArgumentList $Job.Id

结果是

该命令找不到作业 ID 为 17 的作业。请验证 Id 参数的值,然后重试该命令。

似乎当您开始工作时,它会使用自己的工作 ID 获得自己的会话。作业可以启动子作业并可以等待这些作业。有没有办法让作业在会话中等待作业(兄弟作业)?

我在about_Jobsabout_Job_Details文档中找不到任何相关信息。

4

0 回答 0