PowerShell Cmdlet - Format-Table
 記事記号:[mf1953] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Format-Table
    
概要
    出力を表として書式設定します。
    
構文
    Format-Table [[-Property] <Object[]>] [-AutoSize] [-DisplayError] [-Expand <
    string>] [-Force] [-GroupBy <Object>] [-HideTableHeaders] [-InputObject <pso
    bject>] [-ShowError] [-View <string>] [-Wrap] [<CommonParameters>]
    
説明
    Format-Table コマンドレットは、オブジェクトの選択されたプロパティが各列に含
    まれる表として、コマンドの出力を書式設定します。各列に表示される既定のレイア
    ウトとプロパティはオブジェクトの型によって決まりますが、Property パラメータ
    ーを使用すると、表示するプロパティを選択できます。
    
    ハッシュ テーブルを使用すると、オブジェクトを表示する前に、オブジェクトに集
    計プロパティを追加したりテーブルの列ヘッダーを指定することもできます。集計プ
    ロパティを追加するには、Property または GroupBy パラメーターを使用します。
    
パラメーター
    -AutoSize [<SwitchParameter>]
        データの幅に応じて、列のサイズと数を調整します。既定では、列のサイズと数
        はビューによって決まります。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -DisplayError [<SwitchParameter>]
        エラーをコマンド ラインに表示します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Expand <string>
        コレクション オブジェクトおよびコレクション内のオブジェクトを書式設定し
        ます。このパラメーターは、ICollection (System.Collections) インターフェ
        イスをサポートするオブジェクトを書式設定するために用意されました。既定値
        は EnumOnly です。
        
        有効な値は次のとおりです。
        -- EnumOnly: コレクション内のオブジェクトのプロパティを表示します。
        -- CoreOnly: コレクション オブジェクトのプロパティを表示します。
        -- Both: コレクション オブジェクトのプロパティおよびコレクション内のオブ
           ジェクトのプロパティを表示します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Force [<SwitchParameter>]
        コマンドレットにすべてのエラー情報を表示するよう指示します。DisplayError 
        パラメーターまたは ShowError パラメーターと共に使用します。既定では、エ
        ラー オブジェクトがエラーまたは表示ストリームに書き込まれたとき、一部の
        エラー情報だけが表示されます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -GroupBy <Object>
        プロパティ値に基づいて、並べ替えられた出力を個別の表に振り分けます。たと
        えば、GroupBy を使用すると、サービスをそれぞれのステータスに基づいた個別
        の表に一覧表示できます。
        
        出力の式またはプロパティを入力します。出力は並べ替えてから Format-Table 
        に送る必要があります。
        
        GroupBy パラメーターの値には、新しい集計プロパティを指定できます。集計プ
        ロパティを作成するには、ハッシュ テーブルを使用します。有効なキーは次の
        とおりです。
        
        -- Name (または Label) <string>
        -- Expression <string> または <script block>
        -- FormatString <string>
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -HideTableHeaders [<SwitchParameter>]
        表から列ヘッダーを取り除きます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -InputObject <psobject>
        書式設定するオブジェクトを指定します。オブジェクトが格納されている変数を
        入力するか、オブジェクトを取得するコマンドまたは式を入力します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   true (ByValue)
        ワイルドカード文字を許可する false
        
    -Property <Object[]>
        表示するオブジェクト プロパティとその表示順序を指定します。集計プロパテ
        ィを表示するには、1 つまたは複数のプロパティ名をコンマで区切って入力する
        か、ハッシュ テーブルを使用します。ワイルドカードを使用できます。
        
        このパラメーターを省略した場合、表示されるプロパティが、表示されるオブジ
        ェクトごとに異なります。パラメーター名 ("Property") はオプションです。同
        じコマンド内で Property パラメーターと View パラメーターを使用することは
        できません。
        
        Property パラメーターの値には、新しい集計プロパティを指定できます。集計
        プロパティを作成するには、ハッシュ テーブルを使用します。有効なキーは次
        のとおりです。
        
        -- Name (または Label) <string>
        -- Expression <string> または <script block>
        -- FormatString <string>
        -- Width <int32>
        -- Alignment  (値は "Left"、"Center"、または "Right")
        
        必須                         false
        位置                         1
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -ShowError [<SwitchParameter>]
        パイプラインを介してエラーを送ります。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -View <string>
        代替表形式の名前または "view" と指定します。同じコマンド内で Property パ
        ラメーターと View パラメーターを使用することはできません。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Wrap [<SwitchParameter>]
        列幅を超える文字列は次の行に表示されます。既定では、列幅を超える文字列は
        切り捨てられます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    System.Management.Automation.PSObject
        パイプを使用してあらゆるオブジェクトを Format-Table に渡すことができます。
    
出力
    Microsoft.PowerShell.Commands.Internal.Format
        Format-Table は、表を表す書式オブジェクトを返します。
    
メモ
        Format-Table は、その組み込みエイリアスである "FT" で参照することもでき
        ます。詳細については、「about_Aliases」を参照してください。
        
        GroupBy パラメーターは、オブジェクトの並べ替えが済んでいることを前提とし
        ています。Format-Custom でグループ化する前に、Sort-Object を使用してオブ
        ジェクトを並べ替えます。
        
        View パラメーターを使用すると、表の代替形式を指定できます。Windows Power
        Shell ディレクトリの *.format.PS1XML ファイルで定義されているビューを使
        用できるほか、新しい PS1XML ファイルに作成した独自のビューを Update-Form
        atData コマンドレットを使って Windows PowerShell に追加することも可能です。
        
        View パラメーターに指定する代替ビューは、表形式でなければなりません。表
        形式でない場合、コマンドは失敗します。代替ビューが一覧の場合は、Format-L
        ist を使用します。代替ビューが一覧と表のどちらでもない場合は、Format-Cus
        tom を使用します。
        
    -------------------------- 例 1 --------------------------
    
    C:\PS>get-pssnapin | format-table -auto
    
    説明
    -----------
    このコマンドは、Windows PowerShell スナップインに関する情報を表形式で書式設
    定します。既定では、一覧形式で書式設定されます。Get-PSSnapin コマンドレット
    は、Windows PowerShell スナップインを表すオブジェクトを取得します。パイプラ
    イン演算子 (|) は、オブジェクトを Format-Table コマンドに渡します。Format-Ta
    ble は、オブジェクトを表形式で書式設定します。Autosize パラメーターにより、
    切り詰めができるだけ起こらないように列幅が調整されます。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>get-process | sort-object -property basepriority | format-table -group
    by basepriority -wrap
    
    説明
    -----------
    このコマンドは、コンピューター上のプロセスを同じ基本優先度を持つグループに分
    けて表示します。
    
    Get-Process コマンドレットは、コンピューター上の各プロセスを表すオブジェクト
    を取得します。オブジェクトはパイプライン演算子 (|) によって Sort-Object コマ
    ンドレットに渡され、基本優先度順に並べ替えられます。
    
    もう 1 つのパイプライン演算子により、結果が Format-Table コマンドに渡されます。
    GroupBy パラメーターは、プロセスに関するデータを BasePriority プロパティの値
    に基づいてグループ化します。Wrap パラメーターは、データが切り捨てられないよう
    にします。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>get-process | sort-object starttime | format-table -view starttime
    
    
    説明
    -----------
    このコマンドは、コンピューター上のプロセスに関する情報をプロセスの開始日に基
    づいてグループ化して表示します。Get-Process コマンドレットを使用して、コンピ
    ューター上のプロセスを表すオブジェクトを取得します。パイプライン演算子 (|) 
    は、Get-Process の出力を Sort-Object コマンドレットに送ります。Sort-Object 
    コマンドレットは、その Get-Process の出力を StartTime プロパティに基づいて並
    べ替えます。並べ替えられた結果は、別のパイプライン演算子により Format-Table 
    に送られます。
    
    View パラメーターは、Get-Process オブジェクトから返されたビューなど、System.D
    iagnostics.Process オブジェクト用に DotNetTypes.format.ps1xml 書式設定ファイ
    ルで定義された StartTime ビューを選択するために使用されます。このビューは、プ
    ロセスの StartTime を短い日付に変換した後、開始日を基にプロセスをグループ化し
    ます。
    
    DotNetTypes.format.ps1xml 書式設定ファイルにはプロセスの Priority ビューも含
    まれています。また、カスタマイズされたビューを含む独自の format.ps1xml ファイ
    ルを作成することもできます。
    
    -------------------------- 例 4 --------------------------
    
    C:\PS>get-service | format-table -property Name, DependentServices
    
    説明
    -----------
    このコマンドは、Name と DependentServices という 2 つの列を持つ表形式でコン
    ピューター上のすべてのサービスを表示します。コンピューター上のすべてのサービ
    スを取得するために、Get-Service コマンドレットが使用されます。結果はパイプラ
    イン演算子 (|) によって Format-Table コマンドレットに送られ、出力結果が表形
    式に書式設定されます。Property パラメーターを使って、表の列に表示されるプロ
    パティを指定します。Property パラメーターの名前はオプションであるため、省略
    できます ("format-table name, dependentservices")。
    
    Property と DependentServices は、サービス オブジェクトの多くのプロパティの
    うちの 2 つにすぎません。すべてのプロパティを表示するには、「get-service | g
    et-member」と入力します。
    
    -------------------------- 例 5 --------------------------
    
    C:\PS>get-process notepad | format-table ProcessName, `
    @{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}}
    
    説明
    -----------
    このコマンドは、表での集計プロパティの使用方法を示しています。このコマンドは、
    ローカル コンピューター上のすべての Notepad プロセスのプロセス名と合計実行時
    間を表形式で表示します。合計実行時間は、現在の時刻から各プロセスの開始時刻を
    減算するという方法で計算されています。
    
    このコマンドは、Get-Process コマンドレットを使用して、ローカル コンピュータ
    ー上の Notepad という名前のプロセスをすべて取得します。結果はパイプライン演
    算子 (|) によって Format-Table に送られ、プロセスの標準プロパティである Proc
    essName と集計プロパティ TotalRunningTime の 2 つの列を持つ表として表示され
    ます。
    
    TotalRunningTime プロパティは、Label と Expression の 2 つのキーを持つハッシ
    ュ テーブルで指定されます。プロパティの名前は、Label キーに割り当てられます。
    集計は、Expression キーに割り当てられます。この式は、各プロセス オブジェクト
    の StartTime プロパティを取得し、それを現在の日付 (および時刻) を取得する Ge
    t-Date コマンドの結果から減算しています。
    
    -------------------------- 例 6 --------------------------
    
    C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filte
    r "name='notepad.exe'"  
    
    C:\PS> $processes | format-table ProcessName, @{ Label = "Total  Running Tim
    e"; `Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}
    
    
    説明
    -----------
    これらのコマンドは、前のコマンドとほとんど同じですが、前のコマンドとは異なり、
    Get-WmiObject コマンドレットと Win32_Process クラスを使用してリモート コンピ
    ューター上の Notepad プロセスに関する情報を表示します。
    
    最初のコマンドは、Server01 コンピューター上の Notepad.exe という名前のすべて
    のプロセスを記述する Windows Management Instrumentation (WMI) Win32_Process 
    クラスのインスタンスを Get-WmiObject コマンドレットを使用して取得します。こ
    のコマンドは、プロセス情報を $processes 変数に保存します。
    
    
    2 番目のコマンドでは、$processes 変数内のプロセス情報が、パイプライン演算子 
    (|) によって Format-Table コマンドレットに送られ、各プロセスの ProcessName と
    新しい集計プロパティが表示されます。
    
    このコマンドでは、新しい集計プロパティ Total Running Time の名前が、Label キ
    ーに割り当てられます。Expression キーに割り当てられているスクリプト ブロック
    では、現在の日付からプロセスの作成日を減算することによってプロセスの実行時間
    を計算します。Get-Date コマンドレットは現在の日付を取得します。ConvertToDateT
    ime メソッドは、Win32_Process オブジェクトの CreationDate プロパティを WMI CI
    M_DATETIME オブジェクトから Microsoft .NET Framework DateTime オブジェクトに
    変換します。この .NET DateTime オブジェクトを Get-Date の出力と比較することが
    できます。次に、変換された作成日が現在の日付から減算されます。この結果が Tota
    l Running Time の値になります。
    
    バッククォート文字 (`) は行連結文字です。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113303
    Format-List 
    Format-Wide 
    Format-Custom 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Format-List
ご利用数: 1918602
感想・要望・問い合わせは こちら