[登録されているタグ]

[記事公開日]2025/12/21

PowerShellでジョブ結果を受け取る|Receive-Jobの使い方

📝 はじめに

Start-Job でバックグラウンド処理を実行したあと、
「処理は終わったけど、結果はどこで見ればいいの?」
「ジョブが完了しているのに、何も表示されない」
と戸惑ったことはありませんか?

そんなときに使うのが、
ジョブの実行結果を受け取るための
Receive-Job です。
この記事では、ジョブ結果の受け取り方を中心に、
よくあるつまずきポイントも含めて解説します。

こんな場面で便利

  • バックグラウンド処理の結果を確認したい
  • 複数ジョブの結果をまとめて取得したい
  • スクリプトで非同期処理の結果を扱いたい

✅ このコマンドでできること(要点)

  • バックグラウンドジョブの実行結果を取得できる
  • ジョブIDや名前を指定して結果を受け取れる
  • 標準出力・エラー情報を確認できる
  • 後続処理に結果を渡せる

✅ Receive-Job でできること

Receive-Job は、
Start-Job で実行した処理の
出力結果を取得するためのコマンドです。

ジョブは完了しても自動で結果を表示しません。
そのため、「結果を受け取る」操作として
Receive-Job を明示的に実行する必要があります。

「実行」と「結果取得」が分かれている点が、ジョブの特徴です。

🧩 基本構文

Receive-Job -Id ジョブID

ジョブIDまたは名前を指定して、結果を受け取ります。
事前に Get-Job でIDを確認するのが一般的です。

▶ 基本的な使い方(まずこれだけ)

🔹 ジョブ結果を受け取る

Receive-Job -Id 1

ジョブが完了していれば、実行結果が表示されます。
何かしらの出力が表示されていれば、正常に受信できています。

🔹 すべてのジョブ結果を取得する

Get-Job | Receive-Job

存在するすべてのジョブから結果を受け取ります。
複数ジョブをまとめて処理したい場合に便利です。

🛠 よく使われる指定例

🔹 ジョブ名で結果を取得する

Receive-Job -Name TestJob

ジョブに名前を付けている場合は、
名前指定で結果を受け取れます。

🔹 結果を変数に格納する

$result = Receive-Job -Id 1

取得した結果を変数に入れることで、
後続の処理に利用できます。

💼 実務でよく使う使用例(応用)

🔹 完了したジョブだけ結果を取得する

Get-Job | Where-Object State -eq 'Completed' | Receive-Job

完了済みのジョブだけを対象に結果を受け取ります。
実行中のジョブが混ざらないため、安全に扱えます。

🔹 結果取得後にジョブを削除する

Get-Job | Receive-Job
Get-Job | Remove-Job
組み合わせ例

  • Start-Job で処理開始
  • Get-Job で状態確認
  • Remove-Job で後片付け

🧩 よくある勘違い・つまずきポイント

  • ジョブが完了しても自動では結果が表示されない
  • Receive-Job を複数回実行すると結果が空になることがある
  • 実行中(Running)のジョブは結果を受け取れない
  • ジョブを削除すると結果も失われる

🔄 cmdとの違いについて

cmdには、
PowerShellのジョブ機能や
Receive-Job に相当する仕組みはありません。

PowerShellでは、
非同期処理と結果取得を分離して管理できる点が特徴です。

⚠ エラー・うまく動かないときの確認ポイント

  • 対象のジョブが存在しているか
  • ジョブの State が Completed になっているか
  • すでに Receive-Job を実行していないか
  • PowerShellを再起動していないか

🧠 注意点

Receive-Job は、基本的に一度きりの結果取得

📌 まとめ

  • Receive-Job はジョブ結果取得のための専用コマンド
  • Start-Job とセットで使うのが前提
  • 結果は自動表示されない点に注意
  • 次は Remove-Job でジョブ管理を完結させると便利

🔎 PowerShellコマンドを探す

やりたいことからコマンドを探せます。

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • ジョブの結果を確認したい
  • バックグラウンド処理を扱いたい
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る