格式設定檔案概觀
命令所傳回之物件的顯示格式 (Cmdlet、函式和腳本) 是使用 (格式檔案() 的格式檔案)所定義。 PowerShell 會提供這些檔案中的數個,以定義由 PowerShell 所提供命令所傳回之物件的顯示格式,例如 Cmdlet 所傳回的system.object (Process )物件。 Get-Process
不過,您也可以建立自己的自訂格式檔案來覆寫預設顯示格式,也可以撰寫自訂格式檔案來定義您自己的命令所傳回的物件顯示。
重要
格式化檔案不會決定傳回至管線的物件元素。 當物件傳回至管線時,該物件的所有成員即使沒有顯示,也可以使用。
PowerShell 會使用這些格式設定檔案中的資料來判斷所顯示的內容,以及如何格式化顯示的資料。 顯示的資料可以包含物件的屬性或腳本的值。 如果您想要顯示一些無法直接從物件的屬性中使用的值,例如加入物件的兩個屬性值,然後將總和顯示為數據片段,則會使用腳本。 您可以藉由定義要顯示之物件的視圖,來格式化顯示的資料。 您可以為每個物件定義單一視圖,您可以為多個物件定義單一視圖,也可以為相同的物件定義多個視圖。 您可以定義的視圖數目沒有任何限制。
格式化檔案的一般功能
每個格式化檔案都可以定義下列元件,這些元件可以跨檔案定義的所有視圖共用:
預設設定,例如,如果資料的長度超過資料行的寬度,則資料列中顯示的資料是否會顯示在下一行。 如需這些設定的詳細資訊,請參閱 Wrap 元素以進行 TableRowEntry。
物件的集合,可由格式化檔案的任何視圖顯示。 如需這些集合的詳細資訊 (稱為 選取範圍) ,請參閱 定義物件集。
格式化檔案的所有視圖都可使用的通用控制項。 控制項可讓您更精確地控制資料的顯示方式。 如需控制項的詳細資訊,請參閱 定義自訂控制項。
格式化視圖
格式化視圖可以用表格格式、清單格式、寬格式和自訂格式來顯示物件。 在大部分的情況下,每個格式化定義都是由一組描述視圖的 XML 標記所描述。 每個視圖都包含視圖的名稱、使用視圖的物件以及視圖的元素,例如資料表視圖的資料行和資料列資訊。
資料表檢視
列出一或多個資料行中物件或腳本區塊值的屬性。 每個資料行都代表物件或腳本值的單一屬性。 您可以定義資料表視圖,以顯示物件的所有屬性、物件的屬性子集,或屬性和腳本值的組合。 資料表的每個資料列都代表一個傳回的物件。
建立資料表視圖非常類似于當您使用管線將物件傳送至 Format-Table
Cmdlet。 如需此視圖的詳細資訊,請參閱 表格視圖。
[清單檢視]
列出單一資料行中物件或腳本值的屬性。 清單中的每個資料列都會顯示選用的標籤,或屬性名稱後面接著屬性或腳本的值。 建立清單視圖非常類似于使用管線將物件傳送至 Format-List
Cmdlet。 如需此視圖的詳細資訊,請參閱 清單視圖。
寬視圖
列出一或多個資料行中物件或腳本值的單一屬性。 此視圖沒有標籤或標頭。 建立廣泛的視圖非常類似于將物件輸送至 Format-Wide
Cmdlet。 如需此視圖的詳細資訊,請參閱 Wide view。
自訂檢視
顯示物件屬性或腳本值的可自訂視圖,不遵守資料表視圖、清單視圖或寬視圖的固定結構。 您可以定義獨立的自訂視圖,也可以定義另一個視圖所使用的自訂視圖,例如資料表視圖或清單視圖。
建立自訂的視圖非常類似于使用管線將物件傳送至 Format-Custom
Cmdlet。 如需此視圖的詳細資訊,請參閱 自訂視圖。
視圖的元件
下列 XML 範例顯示視圖的基本 XML 元件。 個別的 XML 元素會根據您想要建立的視圖而有所不同,但視圖的基本元件全都相同。
首先,每個視圖都有一個專案 Name
,可指定用來參考視圖的使用者易記名稱。 專案, ViewSelectedBy
定義要由視圖顯示的 .net 物件,以及定義此視圖的 控制項 元素。
<ViewDefinitions>
<View>
<Name>NameOfView</Name>
<ViewSelectedBy>...</ViewSelectedBy>
<TableControl>...</TableControl>
</View>
<View>
<Name>NameOfView</Name>
<ViewSelectedBy>...</ViewSelectedBy>
<ListControl>...</ListControl>
<View>
<View>
<Name>NameOfView</Name>
<ViewSelectedBy>...</ViewSelectedBy>
<WideControl>...</WideControl>
<View>
<View>
<Name>NameOfView</Name>
<ViewSelectedBy>...</ViewSelectedBy>
<CustomControl>...</CustomControl>
</View>
</ViewDefinitions>
在控制項專案中,您可以定義一個或多個 entry 專案 。 如果您使用多個定義,您必須指定要使用每個定義的 .NET 物件。 每個控制項通常都只需要一個專案,只有一個定義。
<ListControl>
<ListEntries>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
<ListEntry>
<EntrySelectedBy>...</EntrySelectedBy>
<ListItems>...</ListItems>
<ListEntry>
</ListEntries>
</ListControl>
在視圖的每個專案專案內,您可以指定 專案專案 ,以定義該視圖所顯示的 .net 屬性或腳本。
<ListItems>
<ListItem>...</ListItem>
<ListItem>...</ListItem>
<ListItem>...</ListItem>
</ListItems>
如先前的範例所示,格式化檔案可以包含多個視圖、一個 view 可以包含多個定義,而且每個定義都可以包含多個專案。
資料表視圖的範例
下列範例顯示用來定義資料表視圖的 XML 標記,其中包含兩個數據行。 ViewDefinitions元素是格式化檔案中定義之所有視圖的容器元素。 View元素會定義特定的資料表、清單、寬或自訂視圖。 在每個 view 專案中, Name 元素會指定視圖的名稱、 ViewSelectedBy 元素會定義使用 view 的物件,而不同的控制項元素 (例如 TableControl
下列範例中所示的元素) 定義視圖的型別。
<ViewDefinitions>
<View>
<Name>Name of View</Name>
<ViewSelectedBy>
<TypeName>Object to display using this view</TypeName>
<TypeName>Object to display using this view</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Width></Width>
</TableColumnHeader>
<TableColumnHeader>
<Width></Width>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Header for column 1</PropertyName>
</TableColumnItem>
<TableColumnItem>
<PropertyName>Header for column 2</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
</ViewDefinitions>
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應