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 オブジェクトGet-ChildItem
のテーブル出力に CreationTime 列を追加します。
この例のカスタム ビューは、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
は、notepad.exe という名前のローカル コンピューターのすべてのプロセスを記述する WMI Win32_Process クラスのインスタンスを取得します。 プロセス オブジェクトは変数に $Processes
格納されます。
変数内の$Processes
プロセス オブジェクトはパイプラインの下にFormat-Table
送信され、ProcessName プロパティと新しい計算プロパティである Total Running Time が表示されます。
このコマンドは、新しい計算プロパティの名前である Total Running Time を Label キーに割り当てます。 式キーのスクリプト ブロックは、プロセスの作成日を現在の日付から減算することによって、プロセスの実行時間を計算します。 コマンドレットは Get-Date
現在の日付を取得します。 作成日は現在の日付から減算されます。 結果は、合計実行時間の 値です。
例 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
すべての画面がいっぱいになった後に、テーブルのヘッダーの表示を繰り返します。 繰り返しヘッダーは、スクリーン リーダーを使用して出力をポケットベルに less
パイプ処理したり more
、ページングしたりする場合に便利です。
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()
帯域外で書式設定されます。 これは、.NET プリミティブ型に適用[string]
されます。これは、組み込みの数値型 (.[long]
NET プリミティブ型など[int]
) のスーパーセットです。入力オブジェクトにはパブリック プロパティがありません。
入力オブジェクトは、成功出力ストリーム以外の出力ストリームに PowerShell が使用するラッパー型のインスタンスです。 これは、これらのラッパー型が、最初に ErrorVariable などの共通パラメーターを使用してキャプチャするか、リダイレクトなどのリダイレクト
*>&1
を使用する必要がある Success 出力ストリームに送信される場合にのみ適用されます。
関連リンク
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示