コマンドレット(コマンド)の出力は、そのままだと見にくかったり、必要な情報が含まれていなかったりする。そうした場合に必要な、出力を整形するテクニックを紹介しよう。
PowerShellでは「Format-」で始まるコマンドで、出力結果を整形できる。まずFormat-で始まるコマンドの一覧を見てみよう(図1)。
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)。
出力が多ければOut-GridView
大量の出力結果をテーブル形式で見たい場合は「Out-GridView」コマンドを使おう。
Get-Command | Select-Object * | Out-GridView
とすると、Get-Commandの出力結果が、すべてのプロパティ▼を含む形でGUIの表として出力される(図3(a))。
Out-GridViewはGUIで操作できるので、縦横にスクロールさせれば任意の場所のデータを表示できる。キーワードなどで表示内容を絞り込むことも可能だ(同(b))。
「Select-Object *」を挟まないと、一部のプロパティに限定される。指定しないと既定のプロパティしか表示されない。