コマンドレット(コマンド)の出力は、そのままだと見にくかったり、必要な情報が含まれていなかったりする。そうした場合に必要な、出力を整形するテクニックを紹介しよう。

 PowerShellでは「Format-」で始まるコマンドで、出力結果を整形できる。まずFormat-で始まるコマンドの一覧を見てみよう(図1)。

図1● コマンドの出力結果を表形式で表示
図1● コマンドの出力結果を表形式で表示
「Format-」で始まるコマンドを「Format-Table」コマンドを使ってテーブル形式で表示した。「-AutoSize」パラメーターを使うと、無駄な空白を省略できる。
[画像のクリックで拡大表示]
Get-Command Format-* | Format-Table -AutoSize

 さっそく「Format-Table」という、出力結果をテーブル形式に整形するコマンドを使った。既定の表示だと余分な空白が入るので、「-AutoSize」パラメーターを適用して削除している。

 今回はここで得られたコマンドのうち、基本的な「Format-Table」「Format-List」「Format-Wide」に加え、GUIによる操作を可能にする「Out-GridView」を紹介する。

グループごとに見やすく表示

 Format-Tableは画面(コンソール)の幅に合わせた表の形式で各項目を表示する。画面に入りきらない項目はばっさり切って表示しない。そこで表示したいプロパティがある場合は、「-Property」パラメーターで指定する。「-Property Name, Version」などと記述すると、複数のプロパティを並べて表示できる。

 プロパティの値でグループ化したいなら、「-GroupBy」パラメーターを使う。例えば

Get-NetIPAddress | Format-Table -AutoSize -GroupBy AddressFamily

とすると、「Get-NetIPAddress」コマンドの出力結果を「IPv4」と「IPv6」のグループに分けて表示する(図2)。

図2●「-GroupBy」パラメーターでプロパティの値ごとにグループ分け
図2●「-GroupBy」パラメーターでプロパティの値ごとにグループ分け
-GroupByパラメーターでプロパティを指定すると、そのプロパティの値ごとにグループに分けて表示する。ここでは、IPアドレスの種別ごとにグループ化している。
[画像のクリックで拡大表示]

出力が多ければOut-GridView

 大量の出力結果をテーブル形式で見たい場合は「Out-GridView」コマンドを使おう。

Get-Command | Select-Object * | Out-GridView

とすると、Get-Commandの出力結果が、すべてのプロパティを含む形でGUIの表として出力される(図3(a))。

 Out-GridViewはGUIで操作できるので、縦横にスクロールさせれば任意の場所のデータを表示できる。キーワードなどで表示内容を絞り込むことも可能だ(同(b))。

図3●「Out-GridView」コマンドを使うとGUIによる操作が可能に
図3●「Out-GridView」コマンドを使うとGUIによる操作が可能に
大量のデータを確認したい場合は、Out-GridViewコマンドが便利だ。GUIによる操作が可能なので、スクロールさせて全体を表示できる(a)。条件を追加して絞り込むことも可能だ(b)。
[画像のクリックで拡大表示]
▼すべてのプロパティ
「Select-Object *」を挟まないと、一部のプロパティに限定される。指定しないと既定のプロパティしか表示されない。