次の方法で共有


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:\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 は、 という名前のすべてのローカル コンピューターのプロセスを記述する WMI Win32_Process クラス のインスタンスnotepad.exe取得します。 プロセス オブジェクトは 変数に $Processes 格納されます。

変数内の $Processes プロセス オブジェクトは、 パイプラインから に Format-Table送信されます。これにより、 ProcessName プロパティと新しい計算プロパティ Total Running Time が表示されます。

このコマンドは、新しい計算プロパティの名前である Total Running TimeLabel キーに割り当てます。 キーのスクリプト ブロックは、プロセスの作成日を現在の日付から減算することによって、プロセスの実行時間を計算します。 コマンドレットは 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 つ以上のプロパティ名を入力するか、ハッシュ テーブルを使用して計算プロパティを表示します。 ワイルドカードを使用できます。

このパラメーターを省略すると、表示に表示されるプロパティは、最初のオブジェクトのプロパティによって異なります。 たとえば、最初のオブジェクトに PropertyAPropertyB があり、後続のオブジェクトに PropertyAPropertyBPropertyC がある場合、 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

入力

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() 帯域外で書式設定されます。 これは、 [string] や などの組み込みの数値型のスーパーセットである .NET プリミティブ型[int][long]に適用されます。

  • 入力オブジェクトにはパブリック プロパティがありません。

  • 入力オブジェクトは、PowerShell が Success 出力ストリーム以外の出力ストリームに使用するラッパー型のインスタンスです。 これは、これらのラッパーの種類が、最初に ErrorVariable などの共通パラメーターを使用してキャプチャするか、 などのリダイレクト *>&1を使用する必要がある Success 出力ストリームに送信される場合にのみ適用されます。