PowerShellコマンドレット虎の巻

Wait-Job

Wait-Jobは、ジョブの停止を待機するコマンドです。

エイリアスwjb

解説

指定されたPowerShellバックグラウンドジョブが完了するまで待機します。
非同期で実行されているジョブの完了を同期的に待つために使用します。

構文

(構文)
Wait-Job [-Id] <int[]> [<CommonParameters>] Wait-Job [-Job] <Job[]> [<CommonParameters>] Wait-Job [-Name] <string[]> [<CommonParameters>] Wait-Job [-InstanceId] <guid[]> [<CommonParameters>] Wait-Job [-State] <状態> [<CommonParameters>] Wait-Job [-Filter] <hashtable> [<CommonParameters>]
【主要パラメータ】
パラメータ説明
-Job オブジェクトジョブオブジェクトを直接指定して待機する
-Any指定したジョブのうちいずれか1つが完了するまで待機する
(例)Wait-Job -Id 1, 2, 5 -Any
-Timeout 秒数各ジョブの最大待機時間を秒単位で指定する
(※既定値は-1で、ジョブが完了するまで待機)
(例)Wait-Job -Timeout 120
-Force強制的にジョブを待機する
-Name ジョブ名ジョブ名を指定して待機する
※ワイルドカード文字も使用可
(例)Wait-Job -Name "TestJob"
-InstanceId IDジョブのインスタンスID(GUID)を指定して待機する
-Id ジョブID待機するジョブのIDを指定する
※複数のIDをコンマ区切りで指定可
(例)Wait-Job -Id 1, 3, 5
-State ステータス特定の状態のジョブを待機する
(Running, Completed, Failed, Stopped等)
(例)Wait-Job -State Running
-Filter条件を指定して待機する

共通的なパラメータは「共通パラメータ」をご覧ください。

サンプル

ジョブが完了するまで待機する

$job = Start-Job -ScriptBlock { Get-Process } Wait-Job -Job $job

ジョブID=1のジョブを待機する

Wait-Job -Id 1

ジョブを10秒待機する

Wait-Job -Job $job -Timeout 10

特定の状態のジョブを待機する

Wait-Job -State Completed

コマンドのヘルプを表示する

Get-Help Wait-Job

備考

  • 無期限に待機するとスクリプトが停止してしまう可能性があるため、
    -Timeoutパラメータを使用して待機時間を設定することをお勧めします。
  • 完了したジョブを自動的に削除しないため、ジョブが完了した後はRemove-Jobで削除してください。

関連項目