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
使用して、 という名前Notepad.exe
の Server01 コンピューター上のすべてのプロセスを記述する 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 オブジェクトに変換します。 次に、変換された作成日を現在の日付から差し引きます。 結果は[ Total Running Time]\(合計実行時間\) の値になります。
例 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
コマンドレットが、データの幅に基づいて列のサイズと列数を調整することを示します。 既定では、列のサイズと数は、ビューによって決まります。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayError
コマンドレットがコマンド ラインにエラーを表示することを示します。 このパラメーターはほとんど使用されませんが、コマンドで Format-Table
式を書式設定していて、式が機能していないように見える場合は、デバッグ支援として使用できます。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Expand
コレクション オブジェクトの形式とコレクション内のオブジェクトを指定します。 このパラメーターは、ICollection (System.Collections) インターフェイスをサポートするオブジェクトを書式設定するために用意されています。 既定値は EnumOnly です。 このパラメーターの有効値は、次のとおりです。
- EnumOnly: コレクション内のオブジェクトのプロパティを表示します。
- CoreOnly: コレクション オブジェクトのプロパティを表示します。
- 両方: コレクション オブジェクトのプロパティとコレクション内のオブジェクトのプロパティを表示します。
Type: | String |
Accepted values: | CoreOnly, EnumOnly, Both |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
コマンドレットが、すべてのエラー情報を表示するようにコマンドレットに指示することを示します。 DisplayError パラメーターまたは ShowError パラメーターと共に 使用します。 既定では、エラー オブジェクトがエラーまたは表示ストリームに書き込まれるとき、エラー情報の一部のみが表示されます。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-GroupBy
プロパティ値に基づいて、個別のテーブルで並べ替えられた出力を指定します。 たとえば、 GroupBy を使用して、サービスの状態に基づいて個別のテーブルにサービスを一覧表示できます。
式または出力のプロパティを入力します。 出力を に Format-Table
送信する前に、出力を並べ替える必要があります。
GroupBy パラメーターの値には、新しい計算プロパティを指定できます。 集計プロパティを作成するには、ハッシュ テーブルを使用します。 有効なキーは次のとおりです。
- Name (または Label) <文字列>
- 式 <の文字列> または <スクリプト ブロック>
- FormatString <文字列>
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HideTableHeaders
表から列見出しを削除します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
書式設定するオブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Property
表示するオブジェクト プロパティと、その表示順序を指定します。 1 つまたは複数の (コンマ区切りの) プロパティ名を入力するか、またはハッシュ テーブルを使用して集計プロパティを表示します。 ワイルドカードを使用できます。
このパラメーターを省略した場合、表示に表示されるプロパティは、最初のオブジェクトのプロパティによって異なります。 たとえば、最初のオブジェクトに PropertyA と PropertyB があり、後続のオブジェクトに PropertyA がある場合、PropertyB ヘッダーと PropertyCヘッダーのみが表示されます。
パラメーター名 Property は省略可能です。 Property パラメーターとView パラメーターを同じコマンドで使用することはできません。
Property パラメーターの値には、新しい計算プロパティを指定できます。 集計プロパティを作成するには、ハッシュ テーブルを使用します。 有効なキーは次のとおりです。
- Name (または Label) <文字列>
- 式 <の文字列> または <スクリプト ブロック>
- FormatString <文字列>
- 幅 <int32>
- 配置 (値は "Left"、"Center"、または "Right" にすることができます)
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-ShowError
パイプラインを使用してエラーを送信します。 このパラメーターはほとんど使用されませんが、コマンドで Format-Table
式を書式設定していて、式が機能していないように見える場合は、デバッグ支援として使用できます。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
代替テーブルの形式またはビューの名前を指定します。 Property パラメーターとView パラメーターを同じコマンドで使用することはできません。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wrap
列幅を超えるテキストを次の行に表示します。 既定では、列幅を超えるテキストは切り捨てられます。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
任意のオブジェクトを に Format-Table
パイプできます。
出力
Microsoft.PowerShell.Commands.Internal.Format
Format-Table
は、テーブルを表す書式オブジェクトを返します。
メモ
GroupBy パラメーターは、オブジェクトが並べ替えられていることを前提としています。 を使用してオブジェクトを Sort-Object
グループ化する前に、 コマンドレットを使用 Format-Table
します。
View パラメーターを使用すると、テーブルの代替形式を指定できます。 PowerShell ディレクトリ内のファイルで定義されているビューを *.format.PS1XML
使用するか、新しい PS1XML ファイルに独自のビューを作成してから、 コマンドレットを Update-FormatData
使用して PowerShell に含めることができます。 View パラメーターの代替ビューでは、テーブル形式を使用する必要があります。それ以外の場合、コマンドは失敗します。
代替ビューがリストの場合は、 コマンドレットを使用します Format-List
。 代替ビューがリストでもテーブルでもない場合は、 コマンドレットを使用します Format-Custom
。