Format-Table
出力をテーブルとして書式設定します。
構文
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>][-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>][<CommonParameters>]
説明
Format-Table
コマンドレットは、コマンドの出力をテーブルとして書式設定し、各列のオブジェクトの選択したプロパティを使用します。 オブジェクトの種類によって、各列に表示される既定のレイアウトとプロパティが決まりますが、 Property パラメーターを使用して、表示するプロパティを選択できます。
また、ハッシュ テーブルを使用して、オブジェクトを表示する前に計算プロパティを追加したり、テーブル内の列見出しを指定したりすることもできます。 計算プロパティを追加するには、Property または GroupBy パラメーター 使用します。
例
例 1: PowerShell ホストの書式設定
このコマンドは、PowerShell のホスト プログラムに関する情報をテーブルに表示します。 デフォルトでは、リストとして書式設定されます。
Get-Host | Format-Table -AutoSize
Get-Host
コマンドレットは、ホストを表すオブジェクトを取得します。 パイプライン演算子 (|) は、オブジェクトを Format-Table
コマンドレットに渡します。
Format-Table
コマンドレットは、テーブル内のオブジェクトを書式設定します。
AutoSize パラメーターは、切り捨てを最小限に抑えるために列の幅を調整します。
例 2: BasePriority によるプロセスの書式設定
このコマンドは、コンピューター上のプロセスを同じ基本優先度のグループで表示します。
Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap
Get-Process コマンドレットは、コンピューター上の各プロセスを表すオブジェクトを取得します。 パイプライン演算子 (|) はオブジェクトを Sort-Object コマンドレットに渡し、 コマンドレットはオブジェクトを基本優先度順に並べ替えます。
別のパイプライン演算子が結果を Format-Table
コマンドレットに渡します。
GroupBy パラメーターは、BasePriority プロパティの値に基づいて、プロセスに関するデータをグループに配置します。
Wrap パラメーターは、データが切り捨てられないようにします。
例 3: 開始日でプロセスを書式設定する
Get-Process | Sort-Object starttime | Format-Table -View starttime
このコマンドは、プロセスの開始日に基づいて、グループ内のコンピューター上のプロセスに関する情報を表示します。 Get-Process コマンドレットを使用して、コンピューター上のプロセスを表すオブジェクトを取得します。 パイプライン演算子 (|) は、 Get-Process
の出力を Sort-Object
コマンドレットに送信し、StartTime プロパティに基づいて並べ替えます。 別のパイプライン オペレーターは、並べ替えられた結果を Format-Table
に送信します。
View パラメーターは、Get-Process
によって返されるオブジェクトなど、System.Diagnostics.Process オブジェクトの DotNetTypes.format.ps1xml
ファイルで定義されている StartTime ビューを選択するために使用されます。 このビューでは、プロセスの StartTime が短い日付に変換され、プロセスが開始日でグループ化されます。
DotNetTypes.format.ps1xml
ファイルには、プロセスの優先度ビューも含まれています。 カスタマイズされたビューを使用して、独自の format.ps1xml ファイルを作成できます。
例 4: サービスの書式設定
Get-Service | Format-Table -Property Name, DependentServices
このコマンドは、コンピュータ上のすべてのサービスを 、Name と DependentServices の 2 つの列を持つテーブルに表示します。
Get-Service
コマンドレットは、コンピューター上のすべてのサービスを取得します。 パイプライン演算子 (|) は結果を Format-Table
コマンドレットに送信し、 コマンドレットによって出力がテーブルに書式設定されます。
Property パラメーターは、テーブルに列として表示されるプロパティを指定します。
Property パラメーターの名前は省略可能であるため、Format-Table Name, DependentServices
のように省略できます。
Name と DependentServices は、サービス オブジェクトのプロパティの 2 つにすぎません。 すべてのプロパティを表示するには、「 Get-Service | Get-Member -MemberType Properties
」と入力します。
例 5: プロセスをフォーマットし、その実行時間を計算する
このコマンドは、テーブルで計算プロパティを使用する方法を示しています。
Get-Process Notepad | Format-Table ProcessName,
@{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
このコマンドは、ローカル コンピューター上のすべてのメモ帳プロセスのプロセス名と合計実行時間を含むテーブルを表示します。 合計実行時間は、現在の時刻から各プロセスの開始時刻を減算することによって計算されます。
このコマンドでは、 Get-Process
コマンドレットを使用して、ローカル コンピューター上の Notepad という名前のすべてのプロセスを取得します。
パイプライン演算子 (|) は結果を Format-Table
に送信し、プロセスの標準プロパティである ProcessName と計算プロパティである TotalRunningTime の 2 つの列を持つテーブルが表示されます。
TotalRunningTime プロパティは、Label と Expression 2 つのキーを持つハッシュ テーブルによって指定されます。 プロパティの名前は Label キーに割り当てられます。 計算は 式 キーに割り当てられます。 式は、各プロセス オブジェクトの StartTime プロパティを取得し、現在の日時を取得する Get-Date
コマンドの結果からそれを減算します。
例 6: メモ帳プロセスの書式設定
これらのコマンドは、 Get-WmiObject
コマンドレットを使用する点を除いて、前のコマンドと似ています。
$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}
最初のコマンドでは、Get-WmiObject
コマンドレットを使用して、Server01 コンピューター上の Notepad.exe
という名前のすべてのプロセスを記述する WMI Win32_Process クラスのインスタンスを取得します。
このコマンドは、プロセス情報を $Processes
変数に格納します。
2 番目のコマンドでは、パイプライン演算子 (|) を使用して、 $Processes
変数のプロセス情報を Format-Table
コマンドレットに送信し、 ProcessName と新しい計算プロパティを表示します。
このコマンドは、新しい計算プロパティの名前 "Total Running Time" を Label キーに割り当てます。
Expression キーに割り当てられたスクリプト ブロックは、現在の日付からプロセスの作成日を差し引いて、プロセスの実行時間を計算します。
Get-Date
コマンドレットは現在の日付を取得します。
ConvertToDateTime メソッドは、Win32_Process オブジェクトの CreationDate プロパティを WMI CIM_DATETIME オブジェクトから Get-Date
の出力と比較できる .NET DateTime オブジェクトに変換します。 次に、変換された作成日が現在の日付から差し引かれます。 結果は、合計実行時間 値です。
例 7: 形式エラーのトラブルシューティング
次の例は、式を使用して DisplayError または ShowError パラメーターを追加した結果を示しています。
PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
Failed to evaluate expression " $_ / $null ".
+ CategoryInfo : InvalidArgument: (10/30/2013 2:28:07 PM:PSObject) \[\], RuntimeException
+ FullyQualifiedErrorId : mshExpressionError
パラメーター
-AutoSize
コマンドレットが、データの幅に基づいて列のサイズと列数を調整することを示します。 既定では、列のサイズと数はビューによって決まります。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DisplayError
コマンドレットがコマンド ラインにエラーを表示することを示します。 このパラメーターはほとんど使用されませんが、Format-Table
コマンドで式を書式設定していて、式が機能していないように見える場合は、デバッグ支援として使用できます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Expand
コレクション オブジェクトとコレクション内のオブジェクトの形式を指定します。 このパラメーターは、ICollection (System.Collections) インターフェイスをサポートするオブジェクトの書式を設定するように設計されています。 既定値は EnumOnly
- EnumOnly: コレクション内のオブジェクトのプロパティを表示します。
- CoreOnly: コレクション オブジェクトのプロパティを表示します。
- 両方: コレクション オブジェクトのプロパティと、コレクション内のオブジェクトのプロパティが表示されます。
型: | String |
指定可能な値: | CoreOnly, EnumOnly, Both |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
コマンドレットが、すべてのエラー情報を表示するようにコマンドレットに指示することを示します。 DisplayError または ShowError パラメーターと共に使用してください。 既定では、エラー オブジェクトがエラー ストリームまたは表示ストリームに書き込まれると、エラー情報の一部のみが表示されます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-GroupBy
プロパティ値に基づいて、個別のテーブルで並べ替えられた出力を指定します。 たとえば、GroupBy を使用して、サービスの状態に基づいて個別のテーブルにサービスを一覧表示できます。
出力の式またはプロパティを入力します。 出力は、 Format-Table
に送信する前にソートする必要があります。
GroupBy パラメーターの値には、新しい計算プロパティを指定できます。 計算されるプロパティを作成するには、ハッシュ テーブルを使用します。 有効なキーは次のとおりです。
- 名前 (またはラベル) <文字列>
- 式 <文字列> または <スクリプト ブロック>
- FormatString <文字列>
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-HideTableHeaders
テーブルの列見出しを省略します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
書式設定するオブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Property
表示に表示されるオブジェクト プロパティと表示順序を指定します。 1 つ以上のプロパティ名 (コンマ区切り) を入力するか、ハッシュ テーブルを使用して計算プロパティを表示します。 ワイルドカードを使用できます。
このパラメーターを省略した場合、表示に表示されるプロパティは、最初のオブジェクトのプロパティによって異なります。 たとえば、最初のオブジェクトに PropertyA と PropertyB があり、後続のオブジェクトに PropertyA、 PropertyB 、 PropertyC がある場合、 PropertyA ヘッダーと PropertyB ヘッダーのみが表示されます。
パラメーター名 プロパティ は任意です。 同じコマンドでは、プロパティ パラメーターと View パラメーターを使用することはできません。
Property パラメーターの値には、新しい計算プロパティを指定できます。 計算プロパティを作成するには、ハッシュ テーブルを使用します。 有効なキーは次のとおりです。
- 名前 (またはラベル) <文字列>
- 式 <文字列> または <スクリプト ブロック>
- FormatString <文字列>
- 幅 <int32>
- 配置 (値は "Left"、"Center"、または "Right")
型: | Object[] |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-ShowError
パイプラインを介してエラーを送信します。 このパラメーターはほとんど使用されませんが、Format-Table
コマンドで式を書式設定していて、式が機能していないように見える場合は、デバッグ支援として使用できます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-View
代替テーブル形式またはビューの名前を指定します。 同じコマンドでは、プロパティ パラメーターと View パラメーターを使用することはできません。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Wrap
次の行の列幅を超えるテキストを表示します。 既定では、列幅を超えるテキストは切り捨てられます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
任意のオブジェクトをパイプ処理して Format-Table
できます。
出力
Microsoft.PowerShell.Commands.Internal.Format
Format-Table
テーブルを表す format オブジェクトを返します。
メモ
GroupBy パラメーターは、オブジェクトが並べ替えられていることを前提としています。
Sort-Object
を使用してオブジェクトをグループ化する前に、Format-Table
コマンドレットを使用します。
View パラメーターを使用すると、テーブルの代替形式を指定できます。 PowerShell ディレクトリ内の *.format.PS1XML
ファイルで定義されているビューを使用するか、新しい PS1XML ファイルに独自のビューを作成し、 Update-FormatData
コマンドレットを使用してそれらを PowerShell に含めることができます。
View パラメーターの代替ビューは、テーブル形式を使用する必要があり、そうしないと、コマンドは失敗します。
代替ビューがリストの場合は、Format-List
コマンドレットを使用します。 代替ビューがリストでもテーブルでもない場合は、 Format-Custom
コマンドレットを使用します。