SHOEISHA iD

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

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

PowerShell 2.0の新機能

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

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

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

ジョブの待機と停止

 処理に時間のかかるジョブはいつ終わるのか分かりません。そこで、ジョブの完了を待機するコマンドレットと、停止をするコマンドレットが備わっています。ここではジョブの待機と停止をする方法について説明します。

ジョブの待機

 Wait-Jobコマンドレットを使用することで、バックグラウンドジョブの実行完了を待ってから、コマンドプロンプトを表示させることができます。

 普通にコマンドレットを実行するのと同じように思われるかもしれませんが、このコマンドレットを使用すれば、他のジョブとの同期を取ったり、待機時間を指定してジョブの終了を待つといったことが可能になります。

 ジョブ待機の基本構文は次のとおりです。

Wait-Jobコマンドレットの基本構文
Wait-Job -ID ジョブID -Timeout 待機時間(秒)

 -IDパラメータ、-Timeoutパラメータは省略可能です。省略した場合にはすべてのジョブの完了を待ってからコマンドプロンプトに戻ります。リスト4はジョブIDが1のジョブが完了するのを待機します。

リスト4
Wait-Job -ID 1

 また-ID、-Timeoutパラメータの他に、-Anyパラメータがあります。-Anyパラメータを使用すると、複数のバックグラウンドジョブのうち、いずれかのジョブが完了したときにコマンドプロンプトへ戻ることができます。
例えばリスト5はIDが1,3,5のいずれかのバックグランドジョブが完了した時点でコマンドプロンプトが表示されます。また終了してないジョブは引き続き実行されます。

リスト5
Wait-Job -ID 1, 3, 5 -Any

ジョブの停止

 バックグラウンドで実行中のジョブは、途中であっても停止させることが可能です。この場合はStop-Jobコマンドレットを使用します。

 よく使用されると思われる構文2つを紹介します。まず1つは、ジョブIDを指定して停止させる構文です。

Stop-Jobコマンドレットの基本構文(ジョブIDの指定)
Stop-Job -ID 停止させるジョブID

 リスト6はジョブIDが1のジョブを停止させます。

リスト6
Stop-Job -ID 1

 次に状態を指定してジョブを停止させる構文です。

Stop-Jobコマンドレットの基本構文(状態の指定)
Stop-Job -State 状態

 「状態」というのは表1の通りでNotStarted、Running、Completed、Stopped、Failedなどがあります。

表1 -Stateパラメータに指定可能な値
説明
NotStarted 開始されていない
Running 実行中
Completed 完了した
Stopped 停止した
Failed 失敗した

例えばリスト7は状態にRunningを指定しているので、実行中のすべてのジョブを停止します。

リスト7
Stop-Job -State Running

次のページ
リモート処理でのバックグラウンドジョブ 

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング