4

PowerShell 作业有没有办法在完成之前报告进度或触发事件?我刚开始在 PowerShell 中执行后台作业,想知道我能把这个功能推到多远。

4

2 回答 2

10

标准的“手动”方式是使用 Get-Job cmdlet。至于事件,当您使用 Start-Job 创建作业时,返回的 Job 对象上有一个“StateChanged”事件,您可以订阅例如:

$job = Start-Job { Get-Process; Start-Sleep -seconds 60 }
Register-ObjectEvent $job -EventName StateChanged `
    -SourceIdentifier JobStateChanged `
    -Action { Write-Host "Job $($Sender.Id) $($Sender.JobStateInfo)" }
于 2009-09-08T14:10:17.383 回答
2

您还可以从本地或远程作业中引发您自己的自定义事件,并在本地会话中对其进行操作。

于 2009-09-14T16:27:36.963 回答