PowerShellは、開発者の手をかなり助けてくれますが、心を読むことはできません。それはデフォルトの形式で最善の推測を提供しますが、最終的にはどのような出力を返すかはあなた次第です。PowerShellのFormat-Tableコマンドレットを使用すると、出力を自分の好みに調整することができます。
PowerShellには、デフォルトの出力とオブジェクトタイプごとに出力の形式を変更する能力を持つフォーマットシステムがあります。特定の方法で常に出力をフォーマットするためにXMLやその他の方法を学ぶことは望ましくない場合、PowerShell format-table、Format-List
、Format-Wide
などのコマンドレットも利用できます。ファイルシステム上のPS1XMLファイルまたはいずれかのフォーマットコマンドレットを使用すると、出力を異なる方法で表示することができます。
特別なフォーマットを使用せずに、デフォルトではPowerShellはその形式を使用します。特定のオブジェクトが返されると、実際のオブジェクトの内容の一部しか表示されません。たとえば、単一のフォルダを見るだけで、親ディレクトリといくつかの属性しか表示されません。
しかし、同じコマンドをSelect-Object -Property *
にパイプしてみてください。何が起こるかを見てみてください。
PowerShellは、通常、すべての情報を表示する必要はないため、オブジェクトの多くのプロパティを隠しています。PowerShellはデフォルトのビューを提供していますが、それが唯一のオプションではありません。フォーマットのコマンドレットを使用して、このビューを変更することができます。
最も人気のあるフォーマットのコマンドレットはFormat-Table
です。PowerShellのヘルプによれば、
Format-Tableコマンドレットは、各列にオブジェクトの選択したプロパティを持つテーブルとしてコマンドの出力をフォーマットします。オブジェクトのタイプによっては、デフォルトのレイアウトと表示されるプロパティが各列に表示されますが、Propertyパラメータを使用して表示したいプロパティを選択することができます。
また、ハッシュテーブルを使用して、オブジェクトを表示する前に計算されたプロパティを追加し、テーブルの列見出しを指定することもできます。計算されたプロパティを追加するには、PropertyパラメータまたはGroupByパラメータを使用します。
PowerShellのFormat-TableとSelect-Object
を使用して個々のオブジェクトプロパティを選択する場合、プロパティの値が現在のコンソールの幅を超えない限り、同じように見えます。しかし、多くのオブジェクトを表示しようとすると、Format-Table
は表形式のままであり、Select-Object
は各行にプロパティを表示する形式に戻ります。
PowerShellのFormat-Tableの出力は常に表形式で情報を表示しようとします。プロパティの値が表示するには長すぎる場合、省略符号である省略記号で不足しているテキストを置き換え、追加の情報が利用可能であることを示しますが、表示されません。
Format-Table
cmdletには、出力を操作するさまざまな方法があります。MicrosoftドキュメントでFormat-Table
の完全なドキュメントをチェックしてください。
Source:
https://adamtheautomator.com/powershell-format-table/