Format-Table
出力を表として書式設定します。
構文
Format-Table [[-Property] <Object[]>] [-AutoSize] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-HideTableHeaders] [-InputObject <psobject>] [-ShowError] [-View <string>] [-Wrap] [<CommonParameters>]
説明
Format-Table コマンドレットは、オブジェクトの選択されたプロパティが各列に含まれる表として、コマンドの出力を書式設定します。各列に表示される既定のレイアウトとプロパティはオブジェクトの型によって決まりますが、Property パラメーターを使用すると、表示するプロパティを選択できます。
ハッシュ テーブルを使用すると、オブジェクトを表示する前に、オブジェクトに集計プロパティを追加したりテーブルの列ヘッダーを指定することもできます。集計プロパティを追加するには、Property または GroupBy パラメーターを使用します。
パラメーター
-AutoSize
データの幅に応じて、列のサイズと数を調整します。既定では、列のサイズと数はビューによって決まります。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-DisplayError
エラーをコマンド ラインに表示します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Expand <string>
コレクション オブジェクトおよびコレクション内のオブジェクトを書式設定します。このパラメーターは、ICollection (System.Collections) インターフェイスをサポートするオブジェクトを書式設定するために用意されました。既定値は EnumOnly です。
有効な値は次のとおりです。
-- EnumOnly: コレクション内のオブジェクトのプロパティを表示します。
-- CoreOnly: コレクション オブジェクトのプロパティを表示します。
-- Both: コレクション オブジェクトのプロパティおよびコレクション内のオブジェクトのプロパティを表示します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Force
コマンドレットにすべてのエラー情報を表示するよう指示します。DisplayError パラメーターまたは ShowError パラメーターと共に使用します。既定では、エラー オブジェクトがエラーまたは表示ストリームに書き込まれたとき、一部のエラー情報だけが表示されます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-GroupBy <Object>
プロパティ値に基づいて、並べ替えられた出力を個別の表に振り分けます。たとえば、GroupBy を使用すると、サービスをそれぞれのステータスに基づいた個別の表に一覧表示できます。
出力の式またはプロパティを入力します。出力は並べ替えてから Format-Table に送る必要があります。
GroupBy パラメーターの値には、新しい集計プロパティを指定できます。集計プロパティを作成するには、ハッシュ テーブルを使用します。有効なキーは次のとおりです。
-- Name (または Label) <string>
-- Expression <string> または <script block>
-- FormatString <string>
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-HideTableHeaders
表から列ヘッダーを取り除きます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-InputObject <psobject>
書式設定するオブジェクトを指定します。オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByValue) |
ワイルドカード文字を許可する |
false |
-Property <Object[]>
表示するオブジェクト プロパティとその表示順序を指定します。集計プロパティを表示するには、1 つまたは複数のプロパティ名をコンマで区切って入力するか、ハッシュ テーブルを使用します。ワイルドカードを使用できます。
このパラメーターを省略した場合、表示されるプロパティが、表示されるオブジェクトごとに異なります。パラメーター名 ("Property") はオプションです。同じコマンド内で Property パラメーターと View パラメーターを使用することはできません。
Property パラメーターの値には、新しい集計プロパティを指定できます。集計プロパティを作成するには、ハッシュ テーブルを使用します。有効なキーは次のとおりです。
-- Name (または Label) <string>
-- Expression <string> または <script block>
-- FormatString <string>
-- Width <int32>
-- Alignment (値は "Left"、"Center"、または "Right")
必須 |
false |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-ShowError
パイプラインを介してエラーを送ります。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-View <string>
代替表形式の名前または "view" と指定します。同じコマンド内で Property パラメーターと View パラメーターを使用することはできません。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Wrap
列幅を超える文字列は次の行に表示されます。既定では、列幅を超える文字列は切り捨てられます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
System.Management.Automation.PSObject パイプを使用してあらゆるオブジェクトを Format-Table に渡すことができます。 |
出力 |
Microsoft.PowerShell.Commands.Internal.Format Format-Table は、表を表す書式オブジェクトを返します。 |
注
Format-Table は、その組み込みエイリアスである "FT" で参照することもできます。詳細については、「about_Aliases」を参照してください。
GroupBy パラメーターは、オブジェクトの並べ替えが済んでいることを前提としています。Format-Custom でグループ化する前に、Sort-Object を使用してオブジェクトを並べ替えます。
View パラメーターを使用すると、表の代替形式を指定できます。Windows PowerShell ディレクトリの *.format.PS1XML ファイルで定義されているビューを使用できるほか、新しい PS1XML ファイルに作成した独自のビューを Update-FormatData コマンドレットを使って Windows PowerShell に追加することも可能です。
View パラメーターに指定する代替ビューは、表形式でなければなりません。表形式でない場合、コマンドは失敗します。代替ビューが一覧の場合は、Format-List を使用します。代替ビューが一覧と表のどちらでもない場合は、Format-Custom を使用します。
例 1
C:\PS>get-pssnapin | format-table -auto
説明
-----------
このコマンドは、Windows PowerShell スナップインに関する情報を表形式で書式設定します。既定では、一覧形式で書式設定されます。Get-PSSnapin コマンドレットは、Windows PowerShell スナップインを表すオブジェクトを取得します。パイプライン演算子 (|) は、オブジェクトを Format-Table コマンドに渡します。Format-Table は、オブジェクトを表形式で書式設定します。Autosize パラメーターにより、切り詰めができるだけ起こらないように列幅が調整されます。
例 2
C:\PS>get-process | sort-object -property basepriority | format-table -groupby basepriority -wrap
説明
-----------
このコマンドは、コンピューター上のプロセスを同じ基本優先度を持つグループに分けて表示します。
Get-Process コマンドレットは、コンピューター上の各プロセスを表すオブジェクトを取得します。オブジェクトはパイプライン演算子 (|) によって Sort-Object コマンドレットに渡され、基本優先度順に並べ替えられます。
もう 1 つのパイプライン演算子により、結果が Format-Table コマンドに渡されます。GroupBy パラメーターは、プロセスに関するデータを BasePriority プロパティの値に基づいてグループ化します。Wrap パラメーターは、データが切り捨てられないようにします。
例 3
C:\PS>get-process | sort-object starttime | format-table -view starttime
説明
-----------
このコマンドは、コンピューター上のプロセスに関する情報をプロセスの開始日に基づいてグループ化して表示します。Get-Process コマンドレットを使用して、コンピューター上のプロセスを表すオブジェクトを取得します。パイプライン演算子 (|) は、Get-Process の出力を Sort-Object コマンドレットに送ります。Sort-Object コマンドレットは、その Get-Process の出力を StartTime プロパティに基づいて並べ替えます。並べ替えられた結果は、別のパイプライン演算子により Format-Table に送られます。
View パラメーターは、Get-Process オブジェクトから返されたビューなど、System.Diagnostics.Process オブジェクト用に DotNetTypes.format.ps1xml 書式設定ファイルで定義された StartTime ビューを選択するために使用されます。このビューは、プロセスの StartTime を短い日付に変換した後、開始日を基にプロセスをグループ化します。
DotNetTypes.format.ps1xml 書式設定ファイルにはプロセスの Priority ビューも含まれています。また、カスタマイズされたビューを含む独自の format.ps1xml ファイルを作成することもできます。
例 4
C:\PS>get-service | format-table -property Name, DependentServices
説明
-----------
このコマンドは、Name と DependentServices という 2 つの列を持つ表形式でコンピューター上のすべてのサービスを表示します。コンピューター上のすべてのサービスを取得するために、Get-Service コマンドレットが使用されます。結果はパイプライン演算子 (|) によって Format-Table コマンドレットに送られ、出力結果が表形式に書式設定されます。Property パラメーターを使って、表の列に表示されるプロパティを指定します。Property パラメーターの名前はオプションであるため、省略できます ("format-table name, dependentservices")。
Property と DependentServices は、サービス オブジェクトの多くのプロパティのうちの 2 つにすぎません。すべてのプロパティを表示するには、「get-service | get-member」と入力します。
例 5
C:\PS>get-process notepad | format-table ProcessName, `
@{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}}
説明
-----------
このコマンドは、表での集計プロパティの使用方法を示しています。このコマンドは、ローカル コンピューター上のすべての Notepad プロセスのプロセス名と合計実行時間を表形式で表示します。合計実行時間は、現在の時刻から各プロセスの開始時刻を減算するという方法で計算されています。
このコマンドは、Get-Process コマンドレットを使用して、ローカル コンピューター上の Notepad という名前のプロセスをすべて取得します。結果はパイプライン演算子 (|) によって Format-Table に送られ、プロセスの標準プロパティである ProcessName と集計プロパティ TotalRunningTime の 2 つの列を持つ表として表示されます。
TotalRunningTime プロパティは、Label と Expression の 2 つのキーを持つハッシュ テーブルで指定されます。プロパティの名前は、Label キーに割り当てられます。集計は、Expression キーに割り当てられます。この式は、各プロセス オブジェクトの StartTime プロパティを取得し、それを現在の日付 (および時刻) を取得する Get-Date コマンドの結果から減算しています。
例 6
C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filter "name='notepad.exe'"
C:\PS> $processes | format-table ProcessName, @{ Label = "Total Running Time"; `
Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}
説明
-----------
これらのコマンドは、前のコマンドとほとんど同じですが、前のコマンドとは異なり、Get-WmiObject コマンドレットと Win32_Process クラスを使用してリモート コンピューター上の Notepad プロセスに関する情報を表示します。
最初のコマンドは、Server01 コンピューター上の Notepad.exe という名前のすべてのプロセスを記述する Windows Management Instrumentation (WMI) Win32_Process クラスのインスタンスを Get-WmiObject コマンドレットを使用して取得します。このコマンドは、プロセス情報を $processes 変数に保存します。
2 番目のコマンドでは、$processes 変数内のプロセス情報が、パイプライン演算子 (|) によって Format-Table コマンドレットに送られ、各プロセスの ProcessName と新しい集計プロパティが表示されます。
このコマンドでは、新しい集計プロパティ Total Running Time の名前が、Label キーに割り当てられます。Expression キーに割り当てられているスクリプト ブロックでは、現在の日付からプロセスの作成日を減算することによってプロセスの実行時間を計算します。Get-Date コマンドレットは現在の日付を取得します。ConvertToDateTime メソッドは、Win32_Process オブジェクトの CreationDate プロパティを WMI CIM_DATETIME オブジェクトから Microsoft .NET Framework DateTime オブジェクトに変換します。この .NET DateTime オブジェクトを Get-Date の出力と比較することができます。次に、変換された作成日が現在の日付から減算されます。この結果が Total Running Time の値になります。
バッククォート文字 (`) は行連結文字です。