次の方法で共有


Format-Table

出力を表として書式設定します。

構文

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-HideTableHeaders]
      [-Wrap]
      [-GroupBy <Object>][-View <string>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <string>]
      [-InputObject <psobject>][<CommonParameters>]

説明

コマンドレットは Format-Table 、コマンドの出力をテーブルとして書式設定し、各列でオブジェクトのプロパティを選択します。 オブジェクトの種類によって、各列に表示される既定のレイアウトとプロパティが決まりますが、 Property パラメーターを使用して、表示するプロパティを選択できます。

また、ハッシュ テーブルを使用して、オブジェクトを表示する前に集計プロパティを追加したり、表の列見出しを指定したりできます。 計算プロパティを追加するには、 Property または GroupBy パラメーターを使用します。

例 1: PowerShell ホストの書式設定

このコマンドは、PowerShell のホスト プログラムに関する情報をテーブルに表示します。 既定では、情報はリスト形式で書式設定されます。

Get-Host | Format-Table -AutoSize

コマンドレットは Get-Host 、ホストを表すオブジェクトを取得します。 パイプライン演算子 (|) は、 オブジェクトを コマンドレットに Format-Table 渡します。 コマンドレットは Format-Table 、テーブル内のオブジェクトの書式を設定します。 AutoSize パラメーターは、列の幅を調整して切り捨てを最小限に抑えます。

例 2: BasePriority によるプロセスの書式設定

このコマンドは、コンピューター上のプロセスを同じ基本優先度を持つグループに分けて表示します。

Get-Process | Sort-Object -Property basepriority | Format-Table -GroupBy basepriority -Wrap

Get-Process コマンドレットは、コンピューター上の各プロセスを表すオブジェクトを取得します。 パイプライン演算子 (|) は、オブジェクトを Sort-Object コマンドレットに渡します。これにより、オブジェクトは基本優先度の順に並べ替えられます。

別のパイプライン演算子は、結果を コマンドレットに Format-Table 渡します。 GroupBy パラメーターは、BasePriority プロパティの値に基づいて、プロセスに関するデータをグループに配置します。 Wrap パラメーターを使用すると、データが切り捨てられないようにします。

例 3: 開始日でプロセスを書式設定する

Get-Process | Sort-Object starttime | Format-Table -View starttime

このコマンドは、コンピューター上のプロセスに関する情報をプロセスの開始日に基づくグループに分けて表示します。 Get-Process コマンドレットを使用して、コンピューター上のプロセスを表すオブジェクトを取得します。 パイプライン演算子 (|) は、 の Get-Process 出力を コマンドレットに Sort-Object 送信し、StartTime プロパティに基づいて並べ替えます。 別のパイプライン演算子は、並べ替えられた結果を に送信します Format-Table

View パラメーターは、 によってGet-Process返されるものなど、System.Diagnostics.Process オブジェクトのファイルでDotNetTypes.format.ps1xml定義されている StartTime ビューを選択するために使用されます。 このビューでは、プロセスの StartTime を 短い日付に変換し、開始日でプロセスをグループ化します。

この DotNetTypes.format.ps1xml ファイルには、プロセスの [優先度 ] ビューも含まれています。 カスタマイズされたビューを使用して、独自の format.ps1xml ファイルを作成できます。

例 4: サービスの書式設定

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

このコマンドは、 NameDependentServices という 2 つの列を持つテーブル内のコンピューター上のすべてのサービスを表示します。 コマンドレットは Get-Service 、コンピューター上のすべてのサービスを取得します。 パイプライン演算子 (|) は、結果をコマンドレットに Format-Table 送信し、テーブル内の出力を書式設定します。 Property パラメーターは、テーブルに列として表示されるプロパティを指定します。 Property パラメーターの名前は省略可能であるため、省略できます (例: Format-Table Name, DependentServices)。

NameDependentServices は、サービス オブジェクトの 2 つのプロパティにすぎません。 すべてのプロパティを表示するには、「」と入力します Get-Service | Get-Member -MemberType Properties

例 5: プロセスを書式設定し、その実行時間を計算する

このコマンドは、表の中で集計プロパティを使用する方法を示しています。

Get-Process Notepad | Format-Table ProcessName,
   @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

このコマンドは、ローカル コンピューター上のすべてのメモ帳プロセスについてプロセス名と合計実行時間を表形式で表示します。 合計実行時間は、現在の時刻から各プロセスの開始時刻を差し引いて求めます。

コマンドは、 コマンドレットを Get-Process 使用して、ローカル コンピューター上の Notepad という名前のすべてのプロセスを取得します。 パイプライン演算子 (|) は、結果を に Format-Table送信します。これにより、ProcessName、プロセスの標準プロパティ、および集計プロパティである TotalRunningTime という 2 つの列を含むテーブルが表示されます。

TotalRunningTime プロパティは、LabelExpression という 2 つのキーを持つハッシュ テーブルによって指定されます。 プロパティの名前が Label キーに割り当てられます。 計算は キーに割り当てられます。 式は、各プロセス オブジェクトの StartTime プロパティを取得し、現在の日付と時刻を Get-Date 取得するコマンドの結果から減算します。

例 6: メモ帳プロセスの書式設定

これらのコマンドは、前のコマンドと似ていますが、これらのコマンドでは コマンドレットが Get-WmiObject 使用されます。

$Processes = Get-WmiObject -ComputerName "Server01" -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{ Label = "Total Running Time"; Expression={(Get-Date) - $_.ConvertToDateTime($_.CreationDate)}}

最初のコマンドでは、 コマンドレットをGet-WmiObject使用して、 という名前Notepad.exeの Server01 コンピューター上のすべてのプロセスを記述する WMI Win32_Process クラスのインスタンスを取得します。 コマンドは、プロセス情報を 変数に $Processes 格納します。

2 番目のコマンドでは、パイプライン演算子 (|) を使用して変数内の $Processes プロセス情報を コマンドレットに Format-Table 送信します。このコマンドレットには 、ProcessName と新しい計算プロパティが表示されます。

このコマンドは、新しい計算プロパティ "Total Running Time" の名前を Label キーに割り当てます。 Expression キーに割り当てられているスクリプト ブロックは、現在の日付からプロセスの作成日を減算することによって、プロセスの実行時間を計算します。 コマンドレットは Get-Date 現在の日付を取得します。 ConvertToDateTime メソッドは、WIN32_PROCESS オブジェクトの CreationDate プロパティを WMI CIM_DATETIME オブジェクトから の出力Get-Dateと比較できる .NET DateTime オブジェクトに変換します。 次に、変換された作成日を現在の日付から差し引きます。 結果は[ Total Running Time]\(合計実行時間\) の値になります。

例 7: 形式エラーのトラブルシューティング

次の例は、式を使用して DisplayError パラメーターまたは ShowError パラメーターを追加した結果を示しています。

PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR

PC /> Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek  $_ / $null
--------- ------------
Wednesday

Failed to evaluate expression " $_ / $null ".
    + CategoryInfo          : InvalidArgument: (10/30/2013 2:28:07 PM:PSObject) \[\], RuntimeException
    + FullyQualifiedErrorId : mshExpressionError

パラメーター

-AutoSize

コマンドレットが、データの幅に基づいて列のサイズと列数を調整することを示します。 既定では、列のサイズと数は、ビューによって決まります。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayError

コマンドレットがコマンド ラインにエラーを表示することを示します。 このパラメーターはほとんど使用されませんが、コマンドで Format-Table 式を書式設定していて、式が機能していないように見える場合は、デバッグ支援として使用できます。

Type:SwitchParameter
Position:Named
Default value:None
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 パラメーターと共に 使用します。 既定では、エラー オブジェクトがエラーまたは表示ストリームに書き込まれるとき、エラー情報の一部のみが表示されます。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupBy

プロパティ値に基づいて、個別のテーブルで並べ替えられた出力を指定します。 たとえば、 GroupBy を使用して、サービスの状態に基づいて個別のテーブルにサービスを一覧表示できます。

式または出力のプロパティを入力します。 出力を に Format-Table送信する前に、出力を並べ替える必要があります。

GroupBy パラメーターの値には、新しい計算プロパティを指定できます。 集計プロパティを作成するには、ハッシュ テーブルを使用します。 有効なキーは次のとおりです。

  • Name (または Label) <文字列>
  • 式 <の文字列> または <スクリプト ブロック>
  • FormatString <文字列>
Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HideTableHeaders

表から列見出しを削除します。

Type:SwitchParameter
Position:Named
Default value:None
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 があり、後続のオブジェクトに PropertyA がある場合、PropertyB ヘッダーと PropertyCヘッダーのみが表示されます。

パラメーター名 Property は省略可能です。 Property パラメーターとView パラメーターを同じコマンドで使用することはできません。

Property パラメーターの値には、新しい計算プロパティを指定できます。 集計プロパティを作成するには、ハッシュ テーブルを使用します。 有効なキーは次のとおりです。

  • Name (または Label) <文字列>
  • 式 <の文字列> または <スクリプト ブロック>
  • FormatString <文字列>
  • 幅 <int32>
  • 配置 (値は "Left"、"Center"、または "Right" にすることができます)
Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ShowError

パイプラインを使用してエラーを送信します。 このパラメーターはほとんど使用されませんが、コマンドで Format-Table 式を書式設定していて、式が機能していないように見える場合は、デバッグ支援として使用できます。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

代替テーブルの形式またはビューの名前を指定します。 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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

PSObject

任意のオブジェクトを に Format-Tableパイプできます。

出力

Microsoft.PowerShell.Commands.Internal.Format

Format-Table は、テーブルを表す書式オブジェクトを返します。

メモ

GroupBy パラメーターは、オブジェクトが並べ替えられていることを前提としています。 を使用してオブジェクトを Sort-Object グループ化する前に、 コマンドレットを使用 Format-Table します。

View パラメーターを使用すると、テーブルの代替形式を指定できます。 PowerShell ディレクトリ内のファイルで定義されているビューを *.format.PS1XML 使用するか、新しい PS1XML ファイルに独自のビューを作成してから、 コマンドレットを Update-FormatData 使用して PowerShell に含めることができます。 View パラメーターの代替ビューでは、テーブル形式を使用する必要があります。それ以外の場合、コマンドは失敗します。 代替ビューがリストの場合は、 コマンドレットを使用します Format-List 。 代替ビューがリストでもテーブルでもない場合は、 コマンドレットを使用します Format-Custom