將輸出格式化為表格。

語法

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

描述

Format-Table Cmdlet 會將命令的輸出格式化為表格,其中每一欄都包含物件的選定屬性。物件類型決定每一欄顯示的預設配置和屬性,但是您可以使用 Property 參數來選取您想要看到的屬性。

您也可以使用雜湊表,將計算屬性新增到物件後再顯示物件,並指定表格中的欄標題。若要加入計算屬性,請使用 Property 或 GroupBy 參數。

參數

-AutoSize

根據資料的寬度來調整欄大小和欄數。預設情況下,欄大小和欄數是由檢視決定。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-DisplayError

在命令列顯示錯誤。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Expand <string>

將集合物件連同集合中的物件一併格式化。此參數係設計為對支援 ICollection (System.Collections) 介面的物件進行格式化。預設值為 EnumOnly。

有效的值包括:

-- EnumOnly:顯示集合中各物件的屬性。

-- CoreOnly:顯示集合物件的屬性。

-- Both:顯示集合物件的屬性,以及集合中各物件的屬性。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Force

指示 Cmdlet 顯示所有的錯誤資訊。請與 DisplayError 或 ShowError 參數搭配使用。根據預設,當錯誤物件寫入錯誤或顯示的資料流時,只會顯示一部分的錯誤資訊。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-GroupBy <Object>

依據屬性值,將已排序過的輸出排列在個別表格內。例如,GroupBy 可用來依據服務的狀態,將服務列入個別表格中。

請輸入運算式或指定輸出的屬性。輸出必須經過排序,才能傳送給 Format-Table。

GroupBy 參數的值可以是新的計算屬性。若要建立計算屬性,請使用雜湊表。有效的索引鍵包括:

-- Name (或 Label) <字串>

-- Expression <字串> 或 <指令碼區塊>

-- FormatString <字串>

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-HideTableHeaders

剔除表格的欄標題。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-InputObject <psobject>

指定要格式化的物件。請輸入包含物件的變數,或輸入可取得物件的命令或運算式。

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByValue)

接受萬用字元?

false

-屬性 <Object[]>

指定呈現在畫面上的物件屬性及其呈現的順序。請輸入一個或多個屬性名稱 (用逗號分隔),或是使用雜湊表顯示計算屬性。允許使用萬用字元。

如果省略此參數,呈現在畫面上的屬性將依所顯示的物件而定。參數名稱 ("Property") 為選擇項。同一個命令不能同時使用 Property 和 View 參數。

Property 參數的值可以是新的計算屬性。若要建立計算屬性,請使用雜湊表。有效的索引鍵包括:

-- Name (或 Label) <字串>

-- Expression <字串> 或 <指令碼區塊>

-- FormatString <字串>

-- Width <int32>

-- Alignment (值可以是 "Left"、"Center" 或 "Right")

必要?

false

位置?

1

預設值

接受管線輸入?

false

接受萬用字元?

false

-ShowError

透過管線傳送錯誤。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-View <string>

指定替代表格格式或「檢視」的名稱。同一個命令不能同時使用 Property 和 View 參數。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Wrap

將超過欄寬的文字顯示於下一行。預設情況下,超過欄寬的文字會被截斷。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.Management.Automation.PSObject

您可經由管道將任何物件輸出至 Format-Table。

輸出

Microsoft.PowerShell.Commands.Internal.Format

Format-Table 會傳回代表表格的格式物件。

附註

您也可以利用內建的別名 "FT" 來參照 Format-Table。如需詳細資訊,請參閱 about_Aliases。

GroupBy 參數會假設物件已經過排序。在使用 Format-Custom 將物件分組之前,請先使用 Sort-Object 將物件排序。

使用 View 參數可為表格指定替代格式。您可以使用 Windows PowerShell 目錄中 *.format.PS1XML 檔案所定義的檢視,也可以在新的 PS1XML 檔案中自行建立檢視,再使用 Update-FormatData Cmdlet 將所建立的檢視包含在 Windows PowerShell 中。

View 參數的替代檢視必須使用表格格式,否則此命令會失敗。如果替代檢視是一份清單,請使用 Format-List。如果替代檢視既不是清單也不是表格,請使用 Format-Custom。

範例 1

C:\PS>get-pssnapin | format-table -auto

描述
-----------
這個命令將 Windows PowerShell 嵌入式管理單元的相關資訊格式化在表格中。根據預設,會將它們格式化在清單中。Get-PSSnapin Cmdlet 會取得代表嵌入式管理單元的物件。管線運算子 (|) 會將物件傳遞給 Format-Table 命令,Format-Table 會將表格中的物件格式化。Autosize 參數會調整欄寬以避免截斷的情況。






範例 2

C:\PS>get-process | sort-object -property basepriority | format-table -groupby basepriority -wrap

描述
-----------
這個命令會以相同基本優先順序的分組方式來顯示電腦上的處理序。

Get-Process Cmdlet 會取得代表電腦中每個處理序的物件。管線運算子 (|) 會將物件傳遞給 Sort-Object Cmdlet,讓後者依照物件的基本優先順序來排序物件。


另一個管線運算子則會將結果傳遞給 Format-Table 命令。GroupBy 參數會根據處理序的 BasePriority 屬性值,將其相關資料分別安排到各群組中。Wrap 參數可確保資料不會被截斷。






範例 3

C:\PS>get-process | sort-object starttime | format-table -view starttime

描述
-----------
這個命令根據處理序的開始日期,將電腦上處理序的相關資訊分別顯示在各群組中。它會使用 Get-Process Cmdlet 來取得代表電腦中處理序的物件。管線運算子 (|) 會將 Get-Process 的輸出傳送到 Sort-Object Cmdlet,此 Cmdlet 再根據 StartTime 屬性加以排序。另一個管線運算子會將排序的結果傳送到 Format-Table。

View 參數用於選取 System.Diagnostics.Process 物件之 DotNetTypes.format.ps1xml 格式化檔案中所定義的 StartTime 檢視,例如由 Get-Process 傳回的物件。這個檢視將處理序的 StartTime 轉換為簡短日期,然後依據開始日期將處理序分組。

DotNetTypes.format.ps1xml 格式化檔案也包含處理序的 Priority 檢視,因此您可以利用自訂檢視來建立自己的 format.ps1xml 檔案。






範例 4

C:\PS>get-service | format-table -property Name, DependentServices

描述
-----------
這個命令以 Name 和 DependentServices 這兩欄,將電腦上的所有服務顯示在表格中。此命令會使用 Get-Service Cmdlet 取得電腦上的所有服務。管線運算子 (|) 會將結果傳送到 Format-Table Cmdlet,該 Cmdlet 會將輸出格式化於表格中。Property 參數指定要在表格中顯示成一欄的屬性。Property 參數的名稱為選擇性,因此可以省略 ("format-table name, dependentservices")。

Property 和 DependentServices 只是服務物件中的兩個屬性。若要檢視所有屬性,請輸入 "get-service | get-member"。






範例 5

C:\PS>get-process notepad | format-table ProcessName, `
@{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}}

描述
-----------
這個命令顯示如何在表格中使用計算屬性。命令顯示一個表格,內含本機電腦中所有「記事本」處理序的名稱及總執行時間。總執行時間的計算方式是將目前的時間減去每個處理序的開始時間。

此命令使用 Get-Process Cmdlet 來取得本機電腦中所有名為 "Notepad" 的處理序。管線運算子 (|) 會將結果傳送到 Format-Table,後者再顯示內含兩欄的表格:ProcessName (處理序的標準屬性) 和 TotalRunningTime (計算屬性)。

TotalRunningTime 屬性是由包含 Label 及 Expression 這兩個索引鍵的雜湊表所指定。屬性的名稱會指派給 Label 索引鍵。計算部分則指派給 Expression 索引鍵。此運算式會取得每個處理序物件的 StartTime 屬性,再從 Get-Date 命令的結果中減去這個屬性值 (這個命令會取得目前的日期和時間)。






範例 6

C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filter "name='notepad.exe'"  

C:\PS> $processes | format-table ProcessName, @{ Label = "Total  Running Time"; `
Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}}

描述
-----------
這些命令類似於前一個命令,例外之處在於這些命令會使用 Get-WmiObject Cmdlet 和 Win32_Process 類別,在遠端電腦上顯示有關「記事本」處理序的資訊。

這個命令會使用 Get-WmiObject Cmdlet 取得 Windows Management Instrumentation (WMI) Win32_Process 類別的執行個體,此類別描述 Server01 電腦上所有名為 Notepad.exe 的處理序。這個命令會將處理序資訊儲存到 $processes 變數。


第二個命令會使用管線運算子 (|) 將處理序資訊以 $processes 變數傳送到 Format-Table Cmdlet,此 Cmdlet 會一併顯示每個處理序的 ProcessName 以及新的計算屬性。

此命令會將新的計算屬性名稱 Total Running Time 指派給 Label 索引鍵。指派給 Expression 索引鍵的指令碼區塊會將目前的日期減去處理序的建立日期,來計算處理序執行了多久。Get-Date Cmdlet 會取得目前的日期。ConvertToDateTime 方法會將 Win32_Process 物件的 CreationDate 屬性,從 WMI CIM_DATETIME 物件轉換為 Microsoft .NET Framework DateTime 物件,以便能夠與 Get-Date 的輸出進行比較。接著,從目前的日期減去轉換過的建立日期。結果即是 Total Running Time 的值。

倒引號字元 (`) 是一行的接續字元。






請參閱




目錄