Format-Table
出力を表として書式設定します。
構文
Format-Table
[[-Property] <Object[]>]
[-AutoSize]
[-RepeatHeader]
[-HideTableHeaders]
[-Wrap]
[-GroupBy <Object>]
[-View <string>]
[-ShowError]
[-DisplayError]
[-Force]
[-Expand <string>]
[-InputObject <psobject>]
[<CommonParameters>]
説明
コマンドレットは Format-Table
、コマンドの出力をテーブルとして書式設定し、各列でオブジェクトのプロパティを選択します。 オブジェクトの種類によって、各列に表示される既定のレイアウトとプロパティが決まります。 Property パラメーターを使用して、表示するプロパティを選択できます。
PowerShell では、既定のフォーマッタを使用して、オブジェクト型の表示方法を定義します。 ファイルを使用して、指定したプロパティを持 .ps1xml
つ出力テーブルを表示するカスタム ビューを作成できます。 カスタム ビューが作成されたら、 View パラメーターを使用して、カスタム ビューでテーブルを表示します。 ビューの詳細については、「 about_Format.ps1xml」を参照してください。
ハッシュ テーブルを使用すると、オブジェクトを表示する前に計算プロパティを追加し、テーブル内の列見出しを指定できます。 計算プロパティを追加するには、 Property または GroupBy パラメーターを使用します。 ハッシュ テーブルの詳細については、「about_Hash_Tables (ハッシュ テーブルについて)」をご覧ください。
例
例 1: PowerShell ホストの書式設定
次の使用例は、PowerShell のホスト プログラムに関する情報をテーブルに表示します。
Get-Host | Format-Table -AutoSize
コマンドレットは Get-Host
、ホストを表す System.Management.Automation.Internal.Host.InternalHost オブジェクトを取得します。 オブジェクトはパイプラインの下に Format-Table
送信され、テーブルに表示されます。 AutoSize パラメーターは、切り捨てを最小限に抑えるために列の幅を調整します。
例 2: BasePriority によるプロセスの書式設定
この例では、同じ BasePriority プロパティを持つグループにプロセスが表示されます。
Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap
コマンドレットは Get-Process
、コンピューター上の各プロセスを表すオブジェクトを取得し、パイプライン Sort-Object
を に送信します。 オブジェクトは、 BasePriority プロパティの順序で並べ替えられます。
並べ替えられたオブジェクトは、パイプラインから に Format-Table
送信されます。 GroupBy パラメーターは、BasePriority プロパティの値に基づいて、プロセス データをグループに配置します。 Wrap パラメーターを使用すると、データが切り捨てられないようにします。
例 3: 開始日でプロセスを書式設定する
次の使用例は、コンピューターで実行されているプロセスに関する情報を表示します。 オブジェクトは並べ替えされ、 Format-Table
ビューを使用してオブジェクトを開始日別にグループ化します。
Get-Process | Sort-Object StartTime | Format-Table -View StartTime
Get-Process
は、コンピューター上で実行されているプロセスを表す System.Diagnostics.Process オブジェクトを取得します。 オブジェクトは パイプラインから に Sort-Object
送信され、 StartTime プロパティに基づいて並べ替えられます。
並べ替えられたオブジェクトは、パイプラインから に Format-Table
送信されます。 View パラメーターは、System.Diagnostics.Process オブジェクトの PowerShell DotNetTypes.format.ps1xml
ファイルで定義されている StartTime ビューを指定します。 StartTime ビューは、各プロセスの開始時刻を短い日付に変換し、開始日でプロセスをグループ化します。
ファイルには DotNetTypes.format.ps1xml
、プロセスの 優先度 ビューが含まれています。 カスタマイズされたビューを使用して独自 format.ps1xml
のファイルを作成できます。
例 4: テーブル出力にカスタム ビューを使用する
この例では、カスタム ビューにディレクトリの内容が表示されます。 カスタム ビューでは、 によって作成された System.IO.DirectoryInfo オブジェクトと System.IO.FileInfo オブジェクトのテーブル出力に CreationTime 列がGet-ChildItem
追加されます。
この例のカスタム ビューは、PowerShell ソース コードで定義されているビューから作成されています。 ビューと、この例のビューの作成に使用されるコードの詳細については、「 about_Format.ps1xml」を参照してください。
Get-ChildItem -Path C:\Test | Format-Table -View mygciview
Directory: C:\Test
Mode LastWriteTime CreationTime Length Name
---- ------------- ------------ ------ ----
d----- 11/4/2019 15:54 9/24/2019 15:54 Archives
d----- 8/27/2019 14:22 8/27/2019 14:22 Drawings
d----- 10/23/2019 09:38 2/25/2019 09:38 Files
-a---- 11/7/2019 11:07 11/7/2019 11:07 11345 Alias.txt
-a---- 2/27/2019 15:15 2/27/2019 15:15 258 alias_out.txt
-a---- 2/27/2019 15:16 2/27/2019 15:16 258 alias_out2.txt
Get-ChildItem
は、現在のディレクトリ の内容を取得します C:\Test
。 System.IO.DirectoryInfo オブジェクトと System.IO.FileInfo オブジェクトがパイプラインの下に送信されます。
Format-Table
では、View パラメーターを使用して、CreationTime 列を含むカスタム ビュー mygciview を指定します。
の既定 Format-Table
の Get-ChildItem
出力には、 CreationTime 列は含まれません。
例 5: テーブル出力にプロパティを使用する
この例では、 Property パラメーターを使用して、プロパティ Name と DependentServices を示す 2 列のテーブルにすべてのコンピューターのサービスを表示します。
Get-Service | Format-Table -Property Name, DependentServices
Get-Service
は、コンピューター上のすべてのサービスを取得し、 System.ServiceProcess.ServiceController オブジェクトをパイプラインの下に送信します。 Format-Table
は Property パラメーターを使用して、Name プロパティと DependentServices プロパティをテーブルに表示することを指定します。
Name と DependentServices は、オブジェクトの種類のプロパティの 2 つです。 すべてのプロパティを表示するには: Get-Service | Get-Member -MemberType Properties
。
例 6: プロセスの書式を設定し、その実行時間を計算する
次の使用例は、ローカル コンピューターの メモ帳 プロセスのプロセス名と合計実行時間を含むテーブルを表示します。 合計実行時間は、現在の時刻から各プロセスの開始時刻を差し引いて求めます。
Get-Process notepad |
Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}
ProcessName TotalRunningTime
----------- ----------------
notepad 03:20:00.2751767
notepad 00:00:16.7710520
Get-Process
は、ローカル コンピューターのすべての メモ帳 プロセスを取得し、パイプラインの下にオブジェクトを送信します。 Format-Table
には、ProcessName、プロパティ、Get-Process
および集計プロパティである TotalRunningTime という 2 つの列を含むテーブルが表示されます。
TotalRunningTime プロパティは、Label と Expression の 2 つのキーを持つハッシュ テーブルによって指定されます。 Label キーは、プロパティ名を指定します。 Expression キーは計算を指定します。 式は、各プロセス オブジェクトの StartTime プロパティを取得し、現在の日付と時刻を Get-Date
取得するコマンドの結果から減算します。
例 7: メモ帳プロセスの書式設定
この例では、 を使用 Get-CimInstance
して、ローカル コンピューター上のすべての メモ帳 プロセスの実行時間を取得します。 ComputerName パラメーターと共に を使用Get-CimInstance
すると、リモート コンピューターから情報を取得できます。
$Processes = Get-CimInstance -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
Label = "Total Running Time"
Expression={(Get-Date) - $_.CreationDate}
}
ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922
Get-CimInstance
は、 という名前のすべてのローカル コンピューターのプロセスを記述する WMI Win32_Process クラス のインスタンスnotepad.exe取得します。 プロセス オブジェクトは 変数に $Processes
格納されます。
変数内の $Processes
プロセス オブジェクトは、 パイプラインから に Format-Table
送信されます。これにより、 ProcessName プロパティと新しい計算プロパティ Total Running Time が表示されます。
このコマンドは、新しい計算プロパティの名前である Total Running Time を Label キーに割り当てます。 式キーのスクリプト ブロックは、プロセスの作成日を現在の日付から減算することによって、プロセスの実行時間を計算します。 コマンドレットは Get-Date
現在の日付を取得します。 作成日は現在の日付から減算されます。 結果は[ Total Running Time]\(合計実行時間\) の値になります。
例 8: 形式エラーのトラブルシューティング
次の例は、式を使用して DisplayError パラメーターまたは ShowError パラメーターを追加した結果を示しています。
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError
DayOfWeek $_ / $null
--------- ------------
Wednesday #ERR
Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError
DayOfWeek $_ / $null
--------- ------------
Wednesday
InvalidArgument: Failed to evaluate expression " $_ / $null ".
パラメーター
-AutoSize
コマンドレットが、データの幅に基づいて列のサイズと列数を調整することを示します。 既定では、列のサイズと数は、ビューによって決まります。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayError
コマンドレットがコマンド ラインにエラーを表示することを示します。 このパラメーターは、コマンドで Format-Table
式を書式設定し、式のトラブルシューティングを行う必要がある場合に、デバッグ支援として使用できます。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
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 パラメーターと共に 使用します。 既定では、エラー オブジェクトがエラー ストリームまたは表示ストリームに書き込まれると、一部のエラー情報のみが表示されます。
特定の .NET 型を書式設定する場合にも必要です。 詳細については、「メモ」セクションを参照してください。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-GroupBy
プロパティ値に基づいて、個別のテーブルで並べ替えられた出力を指定します。 たとえば、 GroupBy を使用して、サービスの状態に基づいて個別のテーブルにサービスを一覧表示できます。
式またはプロパティを入力します。 GroupBy パラメーターは、オブジェクトが並べ替えられていることを想定しています。
を使用してオブジェクトを Sort-Object
グループ化する前に、 コマンドレットを使用 Format-Table
します。
GroupBy パラメーターの値には、新しい計算プロパティを指定できます。 計算プロパティには、スクリプト ブロックまたはハッシュ テーブルを指定できます。 有効なキーと値のペアは次のとおりです。
- 名前 (またはラベル) -
<string>
- 式 -
<string>
または<script block>
- Formatstring-
<string>
詳細については、「 about_Calculated_Properties」を参照してください。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HideTableHeaders
表から列見出しを削除します。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
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 がある場合、 PropertyA ヘッダーと PropertyB ヘッダーのみが表示されます。
Property パラメーターは省略可能です。 同じコマンドで Property パラメーターと View パラメーターを使用することはできません。
Property パラメーターの値には、新しい計算プロパティを指定できます。 計算プロパティには、スクリプト ブロックまたはハッシュ テーブルを指定できます。 有効なキーと値のペアは次のとおりです。
- 名前 (またはラベル)
<string>
- 式 -
<string>
または<script block>
- Formatstring-
<string>
- 幅 - -
<int32>
より大きくする必要があります0
- 配置 - 値には、、、
Center
または を指定Left
できます。Right
詳細については、「 about_Calculated_Properties」を参照してください。
Type: | Object[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-RepeatHeader
すべての画面がいっぱいになった後、テーブルのヘッダーの表示を繰り返します。 繰り返しヘッダーは、スクリーン リーダーを使用して、または more
ページングなどのless
ページャーに出力をパイプする場合に便利です。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ShowError
このパラメーターは、パイプラインを介してエラーを送信します。 このパラメーターは、コマンドで Format-Table
式を書式設定し、式のトラブルシューティングを行う必要がある場合に、デバッグ支援として使用できます。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
PowerShell 6 以降、既定のビューは PowerShell C#
ソース コードで定義されています。 PowerShell 5.1 以前のバージョンのファイルは *.format.ps1xml
、PowerShell 6 以降のバージョンには存在しません。
View パラメーターを使用すると、テーブルの代替形式またはカスタム ビューを指定できます。 既定の PowerShell ビューを使用することも、カスタム ビューを作成することもできます。 カスタム ビューを作成する方法の詳細については、「 about_Format.ps1xml」を参照してください。
View パラメーターの代替ビューとカスタム ビューでは、テーブル形式を使用する必要があります。それ以外の場合はFormat-Table
失敗します。 代替ビューがリストの場合は、 コマンドレットを使用します Format-List
。 代替ビューがリストまたはテーブルではない場合は、 コマンドレットを使用します Format-Custom
。
同じコマンドで 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: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
任意のオブジェクトをこのコマンドレットにパイプできます。
出力
Microsoft.PowerShell.Commands.Internal.Format
このコマンドレットは、テーブルを表す書式オブジェクトを返します。
メモ
PowerShell には、 の次のエイリアスが Format-Table
含まれています。
- すべてのプラットフォーム:
ft
PowerShell 7.2 では、出力を色分けするための新機能が導入されました。 色は、自動変数を $PSStyle
使用して管理できます。 プロパティは $PSStyle.Formatting.TableHeader
、 によって表示されるテーブルのヘッダーに使用される色を Format-Table
定義します。 この設定の詳細については、「 about_ANSI_Terminals」を参照してください。
Property パラメーターと共に を使用Format-Table
する場合は、次のいずれかの条件で Force パラメーターを含める必要があります。
入力オブジェクトは、通常、 メソッドを使用して
ToString()
帯域外で書式設定されます。 これは、[string]
や などの組み込みの数値型のスーパーセットである .NET プリミティブ型[int]
[long]
に適用されます。入力オブジェクトにはパブリック プロパティがありません。
入力オブジェクトは、PowerShell が Success 出力ストリーム以外の出力ストリームに使用するラッパー型のインスタンスです。 これは、これらのラッパーの種類が、最初に ErrorVariable などの共通パラメーターを使用してキャプチャするか、 などのリダイレクト
*>&1
を使用する必要がある Success 出力ストリームに送信される場合にのみ適用されます。