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 のテーブル出力に CreationTime 列が追加され、Get-ChildItem
によって作成された System.IO.FileInfo オブジェクト されます。
この例のカスタム ビューは、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 カスタム ビューを指定します。
Get-ChildItem
の既定の Format-Table
出力には、CreationTime 列は含まれません。
例 5: テーブル出力にプロパティを使用する
この例では、Property パラメーターを使用して、2 列のテーブルにすべてのコンピューターのサービスを表示し、Name と DependentServices プロパティを表示します。
Get-Service | Format-Table -Property Name, DependentServices
Get-Service
は、コンピューター上のすべてのサービスを取得し、System.ServiceProcess.ServiceController オブジェクトをパイプラインに送信します。
Format-Table
は、Property パラメーターを使用して、名の プロパティと DependentServices プロパティがテーブルに表示されるように指定します。
名前 と 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 キーは、プロパティ名を指定します。
式 キーは、計算を指定します。 式は、各プロセス オブジェクトの 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) を 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
コマンドレットが、データの幅に基づいて列のサイズと列数を調整することを示します。 既定では、列のサイズと数はビューによって決まります。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DisplayError
コマンドレットがコマンド ラインにエラーを表示することを示します。 このパラメーターは、Format-Table
コマンドで式を書式設定し、式のトラブルシューティングを行う必要がある場合に、デバッグ支援として使用できます。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Expand
コレクション オブジェクトとコレクション内のオブジェクトの形式を指定します。 このパラメーターは、ICollection (System.Collections) インターフェイスをサポートするオブジェクトを書式設定するように設計されています。 既定値は EnumOnly です。 このパラメーターに使用できる値は次のとおりです。
- EnumOnly: コレクション内のオブジェクトのプロパティを表示します。
- CoreOnly: コレクション オブジェクトのプロパティを表示します。
- 両方の: コレクション オブジェクトのプロパティとコレクション内のオブジェクトのプロパティを表示します。
型: | String |
指定可能な値: | CoreOnly, EnumOnly, Both |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
コマンドレットが、すべてのエラー情報を表示するようにコマンドレットに指示することを示します。 DisplayError または ShowError パラメーター 使用します。 既定では、エラー オブジェクトがエラー ストリームまたは表示ストリームに書き込まれると、一部のエラー情報のみが表示されます。
特定の .NET 型を書式設定する場合にも必要です。 詳細については、「Notes」セクションを参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-GroupBy
プロパティ値に基づいて、個別のテーブルで並べ替えられた出力を指定します。 たとえば、GroupBy を使用して、サービスの状態に基づいて個別のテーブルにサービスを一覧表示できます。
式またはプロパティを入力します。
GroupBy パラメーターは、オブジェクトが並べ替えられていることを想定しています。
Format-Table
を使用してオブジェクトをグループ化する前に、Sort-Object
コマンドレットを使用します。
GroupBy パラメーターの値には、新しい計算プロパティを指定できます。 計算プロパティには、スクリプト ブロックまたはハッシュ テーブルを指定できます。 有効なキーと値のペアは次のとおりです。
- 名前 (またはラベル) -
<string>
- 式 -
<string>
または<script block>
- FormatString -
<string>
詳細については、about_Calculated_Propertiesを参照してください。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-HideTableHeaders
テーブルの列見出しを省略します。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
書式設定するオブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Property
表示に表示されるオブジェクト プロパティと表示順序を指定します。 コンマで区切って 1 つ以上のプロパティ名を入力するか、ハッシュ テーブルを使用して計算プロパティを表示します。 ワイルドカードを使用できます。
このパラメーターを省略した場合、表示に表示されるプロパティは、最初のオブジェクトのプロパティによって異なります。 たとえば、最初のオブジェクトに PropertyA と PropertyB が されていても、後続のオブジェクトに PropertyA 、PropertyB、および PropertyC がある場合、PropertyA ヘッダーと PropertyB ヘッダーのみが表示されます。
Property パラメーターは省略可能です。 プロパティ と View パラメーターを同じコマンドで使用することはできません。
Property パラメーターの値には、新しい計算プロパティを指定できます。 計算プロパティには、スクリプト ブロックまたはハッシュ テーブルを指定できます。 有効なキーと値のペアは次のとおりです。
- 名前 (またはラベル)
<string>
- 式 -
<string>
または<script block>
- FormatString -
<string>
- 幅 -
<int32>
-0
より大きくする必要があります - 配置 - 値は、
Left
、Center
、またはRight
できます
詳細については、about_Calculated_Propertiesを参照してください。
型: | Object[] |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-RepeatHeader
すべての画面がいっぱいになった後に、テーブルのヘッダーの表示を繰り返します。 繰り返しヘッダーは、出力が less
や more
、スクリーン リーダーによるページングなどのポケットベルにパイプされる場合に便利です。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ShowError
このパラメーターは、パイプラインを介してエラーを送信します。 このパラメーターは、Format-Table
コマンドで式を書式設定し、式のトラブルシューティングを行う必要がある場合に、デバッグ支援として使用できます。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | 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
コマンドレットを使用します。
プロパティ と View パラメーターを同じコマンドで使用することはできません。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Wrap
次の行の列幅を超えるテキストを表示します。 既定では、列幅を超えるテキストは切り捨てられます。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | 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()
メソッドを使用して帯域外で書式設定されます。 これは、[int]
、[long]
などの組み込みの数値型のスーパーセットである、[string]
および .NET プリミティブ型に適用されます。入力オブジェクトにはパブリック プロパティがありません。
入力オブジェクトは、成功出力ストリーム以外の出力ストリームに PowerShell が使用するラッパー型のインスタンスです。 これは、これらのラッパー型が成功出力ストリームに送信される場合にのみ適用されます。このストリームでは、まず、ErrorVariable などの一般的なパラメーターを使用してキャプチャするか、
*>&1
などのリダイレクトを使用する必要があります。
関連リンク
PowerShell