首页 > 解决方案 > 如何在工作结束之前从工作中获取数据?

问题描述

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

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

标签: powershelloutputjobs

解决方案


你可以随时打电话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
跑步

推荐阅读