【问题标题】:How to get data from job before it ends?如何在工作结束之前从工作中获取数据?
【发布时间】:2019-02-23 15:06:38
【问题描述】:

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

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

【问题讨论】:

  • going OK or stacked somewhere - 卡住了? (你知道最后 % 的工作需要 137% 的时间吗?)

标签: powershell output jobs


【解决方案1】:

您可以随时拨打Receive-Job。这项工作不必为此完成。但是,接收到的输出会从作业中删除,因此您需要将其存储在一个变量中,以备日后需要时使用。

演示:

PS C:\> $job = Start-Job -ScriptBlock {1..10 | %{$_;开始-睡眠-秒 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 跑步

【讨论】:

    猜你喜欢
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多