如何在作业结束之前从作业中获取数据?

时间:2019-02-23 15:06:39

标签: powershell output jobs

我正在做一个项目,我需要开始工作以执行并行流程。我正在使用Start-Job来启动它们,我可以使用Receive-Job来获得工作结束时的数据。这里的问题是:该过程是从目录复制文件,此过程可能需要很长时间,因此我需要检查处理是否正常或是否堆积在某个地方,例如已复制文件的百分比(%)。

如何在作业结束前检查变量值?

1 个答案:

答案 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
相关问题