SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

Windows PowerShell 入門

Windows PowerShell 入門(2)-基本操作編 2

パイプの使用方法を中心としたコマンドレット操作方法

特定条件のデータを取得する

 先ほどのSelect-Objectコマンドレットは、列データを取得するイメージでした。今度は特定条件に合致するデータを行で取得するコマンドレット、Where-Objectについて説明します。

 ローカルコンピュータ上のサービスを取得するコマンドレットとしてGet-Serviceがあります。まずはこのコマンドレットを実行してみましょう。

Get-Service

 と入力してEnterキーを押してください。

 稼働中のサービス、停止中のサービスを取得できます。

 このとき「停止中のサービスだけを表示したい」となった場合はどうすればよいでしょう? こういう場合は、特定の条件に合致するデータを取得できるWhere-Objectコマンドレットを使用します。

get-service | Where-Object {$_.Status -eq "Stopped"}

 と入力して、Enterキーを押してください。

 停止中のサービスを取得できました。

 Where-Objectコマンドレットでは条件式を{}で囲まれた部分に記述します(これをスクリプトブロックと呼びます)。また$_はパイプで渡されたオブジェクトが格納される特殊な変数です。この変数にドットを付けて$_.Statusのように記述すると、パイプで渡されたオブジェクトの「Statusプロパティ」を意味することとなります。-eqは比較演算子で「等しい」という意味です。

 つまりWhere-Object {$_.Status -eq "Stopped"}は、パイプで渡されたオブジェクトのStatusプロパティが「Stopped」に等しいものだけを返します。

グルーピング

 同じプロパティの値を持つオブジェクトでグルーピングをするコマンドレットとして、Group-Objectがあります。

 例えば、指定したディレクトリにあるファイル群を拡張子別にグルーピングするには、

Get-ChildItem *.* | Group-Object Extension

 と入力してEnterキーを押します。

 拡張子別にデータがグルーピングされ、グループごとのファイル数や拡張子、グループ化されたファイル名が表示されています。

まとめ

 今回は、

  • コマンドレットの実行結果はオブジェクトであること
  • パイプ
  • Sort-Object
  • Select-Object
  • Where-Object
  • Group-Object

 について見てきました。Windows PowerShellが強力であることを少しでも実感していただけたでしょうか?

 次回は、お約束通りスクリプトについて説明したいと思います。

次の記事

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Windows PowerShell 入門連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2201 2008/03/12 16:41

イベント

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

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

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

メールバックナンバー