我正在做一个项目,我需要开始工作以执行并行流程。我正在使用Start-Job
来启动它们,我可以使用Receive-Job
来获得工作结束时的数据。这里的问题是:该过程是从目录复制文件,此过程可能需要很长时间,因此我需要检查处理是否正常或是否堆积在某个地方,例如已复制文件的百分比(%)。
如何在作业结束前检查变量值?
答案 0 :(得分:1)
您可以随时致电Receive-Job
。这项工作不一定要完成。但是,收到的输出将从作业中删除,因此如果以后需要,则需要将其存储在变量中。
演示:
PS C:\> $job = Start-Job -ScriptBlock {1..10 | %{$_; Start-Sleep -Seconds 1}} PS C:\> Start-Sleep -Seconds 3 PS C:\> Receive-Job -Job $job 1 2 3 PS C:\> Start-Sleep -Seconds 3 PS C:\> Receive-Job -Job $job 4 5 6 PS C:\> $job.State Running