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

问题描述 投票:0回答:1

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

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

powershell output jobs
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.