PowerShell作业进度监视

Eri*_*ver 4 powershell asynchronous background task

有没有办法让PowerShell作业报告进度或在事件完成之前触发事件?我刚刚开始在PowerShell中执行后台作业,并且想知道我能在多大程度上推动这项功能.

Kei*_*ill 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)" }
Run Code Online (Sandbox Code Playgroud)