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:\TestSystem.IO.DirectoryInfo オブジェクトと System.IO.FileInfo オブジェクトがパイプラインに送信されます。 Format-Tableでは、View パラメーターを使用して、CreationTime 列を含むカスタム ビュー mygciview指定します。

既定Format-TableGet-ChildItem出力には、CreationTime 列は含まれません。

例 5: テーブル出力にプロパティを使用する

この例では、Property パラメーターを使用して、プロパティ NameDependentServices を示す 2 列のテーブルにすべてのコンピューターのサービスを表示します

Get-Service | Format-Table -Property Name, DependentServices

Get-Serviceは、コンピューター上のすべてのサービスを取得し、System.ServiceProcess.ServiceController オブジェクトをパイプラインの下に送信します。 Format-Tableでは、Property パラメーターを使用して、Name プロパティと DependentServices プロパティがテーブルに表示されるように指定します。

NameDependentServices は、オブジェクト型のプロパティの 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 プロパティは、LabelExpression の 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、PropertyBPropertyC がある場合、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

入力

PSObject

任意のオブジェクトをこのコマンドレットにパイプできます。

出力

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 出力ストリームに送信される場合にのみ適用されます。