4

PowerShell ジョブが進行状況を報告したり、完了する前にイベントをトリガーしたりする方法はありますか? PowerShell でバックグラウンド ジョブの実行をいじり始めたばかりで、この機能をどこまでプッシュできるか疑問に思っています。

4

2 に答える 2

10

標準的な "手動" の方法は、Get-Job コマンドレットを使用することです。イベントに関しては、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 に答える