SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

PowerShell 2.0の新機能

PowerShell 2.0の新機能(3)
――バックグラウンドジョブ編

PowerShell 2.0のバックグラウンドジョブ

  • X ポスト
  • このエントリーをはてなブックマークに追加

実行したジョブの状態確認と実行結果の取得

 Start-Jobコマンドレットで実行したジョブはバックグラウンドで動作するため、後から実行結果を取得する必要があります。

実行状態の確認

 まずはバックグラウンドで実行したジョブの実行状態を確認する方法ですが、これにはGet-Jobコマンドレットを使用します。

 Get-Jobコマンドレットの基本構文は次のいずれかです。この他にもありますので興味がある方はヘルプを参照ください。

Get-Jobコマンドレットの基本構文
Get-Job -Id ジョブID
 または
Get-Job -Name ジョブ名

 基本は、実行したジョブのIdまたはジョブ名を渡します。パラメータを使用しないでGet-Jobコマンドレットを実行した場合は、すべてのジョブがリスト表示されます。

 ジョブの実行が完了している場合は図2のようにStateが「Completed」となります。もしもジョブが失敗した場合には「Failed」となります。

図2 Get-Jobコマンドレットの実行
図2 Get-Jobコマンドレットの実行

実行結果の取得

 バックグラウンドで実行したジョブの結果を取得するには、Receive-Jobコマンドレットを使用します。

 Receive-Jobコマンドレットの基本構文は次のとおりです。

Get-Jobコマンドレットの基本構文
Receive-Job -Id ジョブID
 または
Receive-Job -Name ジョブ名

 パラメータに指定するジョブIDやジョブ名は、先ほど紹介したGet-Jobコマンドレットで確認することができます。次に示すリスト2はジョブIDが1の結果を取得して、$Jobresultという変数に格納します(図3)。

リスト2
$JobResult = Receive-Job -Id 1
図3 Receive-Jobコマンドレットの実行
図3 Receive-Jobコマンドレットの実行

ジョブ結果取得時の注意点

 バックグラウンドジョブの実行結果はキャッシュに保存されています。
Receive-Jobコマンドレットは、既定ではジョブの結果をキャッシュから削除します。

 ジョブの実行が完了している場合には、すべての実行結果を取り出しますが、実行途中のジョブに対してReceive-Jobコマンドレットを実行すると、途中までの結果を返してその分の結果をキャッシュから削除します。
もう1度Receive-Jobコマンドレットを実行すると、残りの結果を返します。

 もしも、実行結果をキャッシュから削除したくない場合にはkeepパラメータを使用します。例えばリスト3は、ジョブ結果をキャッシュから取得しますが、キャッシュの中身は削除されません。

リスト3
$Jobresult =Receive-Job -Id 1 -Keep

次のページ
ジョブの待機と停止

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
PowerShell 2.0の新機能連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4763 2010/01/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング