寬檢視會顯示所顯示每個物件的單一值。 顯示的值可以是 .NET 物件屬性的值或腳本的值。 根據預設,此檢視沒有標籤或標頭。
寬視圖顯示
下列範例示範 Windows PowerShell 如何顯示 System.Diagnostics.Process 物件,當 Get-Process Cmdlet 的輸出管道傳送至 Format-Wide Cmdlet。 (根據預設,get-Process Cmdlet 會傳回數據表檢視。在此範例中,這兩個數據行用來顯示每個傳回對象的進程名稱。 不會顯示物件屬性的名稱,而只會顯示 屬性的值。
Get-Process | Format-Wide
AEADISRV agrsmsvc
Ati2evxx Ati2evxx
audiodg CCC
CcmExec communicator
Crypserv csrss
csrss DevDtct2
DM1Service dpupdchk
dwm DxStudio
EXCEL explorer
GoogleToolbarNotifier GrooveMonitor
hpqwmiex hpservice
Idle InoRpc
InoRT InoTask
ipoint lsass
lsm MOM
MSASCui notepad
... ...
定義寬檢視
下列 XML 顯示 System.Diagnostics.Process 物件的寬檢視架構。
<View>
<Name>process</Name>
<ViewSelectedBy>
<TypeName>System.Diagnostics.Process</TypeName>
</ViewSelectedBy>
<GroupBy>...</GroupBy>
<Controls>...</Controls>
<WideControl>
<WideEntries>
<WideEntry>
<WideItem>
<PropertyName>ProcessName</PropertyName>
</WideItem>
</WideEntry>
</WideEntries>
</WideControl>
</View>
下列 XML 元素可用來定義寬檢視:
- View 元素是寬檢視的父元素。 (這是數據表、清單和自定義控件檢視的相同父元素。
- Name 專案會指定檢視的名稱。 所有檢視都需要此元素。
- ViewSelectedBy 元素會定義使用檢視的物件。 這個元素是必要的。
- GroupBy 元素會在顯示新的物件群組時定義。 每當特定屬性或腳本的值變更時,就會啟動新的群組。 這是選擇性的項目。
- Controls 元素會定義寬檢視所定義的自定義控件。 控制項可讓您進一步指定資料的顯示方式。 這是選擇性的項目。 檢視可以定義自己的自定義控件,也可以使用格式化檔案中任何檢視可以使用的通用控件。 如需自訂控制元件的詳細資訊,請參閱 建立自定義控制項。
- WideControl 元素及其子元素會定義檢視中顯示的專案。 在上述範例中,檢視的設計目的是顯示 system.Diagnostics.ProcessName 屬性。
如需定義簡單寬檢視的完整格式檔案範例,請參閱 Wide View (Basic)。
提供寬檢視的定義
Wide 檢視可以使用 wideControl 元素的子元素,提供一或多個定義。 一般而言,檢視只會有一個定義。 在下列範例中,檢視會提供單一定義,以顯示 System.Diagnostics.ProcessName 屬性。 寬檢視可以顯示屬性值或腳本的值(如範例中未顯示)。
<WideControl>
<AutoSize/>
<ColumnNumber></ColumnNumber>
<WideEntries>
<WideEntry>
<WideItem>
<PropertyName>ProcessName</PropertyName>
</WideItem>
</WideEntry>
</WideEntries>
</WideControl>
下列 XML 元素可用來提供寬檢視的定義:
- WideControl 元素及其子元素會定義檢視中顯示的專案。
- AutoSize 元素會指定是否根據資料的大小調整資料行大小和資料行數目。 這是選擇性的項目。
- ColumnNumber 元素會指定寬檢視中顯示的欄數。 這是選擇性的項目。
- WideEntries 元素會提供檢視的定義。 在大部分情況下,檢視只會有一個定義。 這個元素是必要的。
- WideEntry 專案提供檢視的定義。 至少需要一個 WideEntry;不過,您可以新增的項目數目沒有上限。 在大部分情況下,檢視只會有一個定義。
- EntrySelectedBy 元素會指定特定定義所顯示的物件。 這個元素是選擇性的,只有在您定義多個 WideEntry 顯示不同物件的元素時,才需要此元素。
- WideItem 元素會指定檢視所顯示的數據。 相較於其他類型的檢視,寬控件只能顯示一個專案。
- PropertyName 專案會指定檢視顯示其值的屬性。 您必須指定屬性或文稿,但無法同時指定兩者。
- ScriptBlock 元素會指定檢視顯示其值的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。
- FormatString 元素會指定用來顯示數據的模式。 這是選擇性的項目。
如需定義寬檢視定義的完整格式檔案範例,請參閱 Wide View (Basic)。
定義使用寬視圖的物件
有兩種方式可以定義哪些 .NET 物件使用寬檢視。 您可以使用 ViewSelectedBy 元素來定義可由檢視的所有定義顯示的物件,也可以使用 EntrySelectedBy 元素來定義檢視的特定定義所顯示的物件。 在大部分情況下,檢視只有一個定義,因此物件通常是由 viewSelectedBy 元素 定義。
下列範例示範如何使用 viewSelectedBy 和 TypeName 元素,定義寬檢視所顯示的物件。 您可以指定 TypeName 元素的數目沒有限制,而且其順序並不重要。
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<TypeName>System.Diagnostics.Process</TypeName>
</ViewSelectedBy>
<WideControl>...</WideControl>
</View>
下列 XML 元素可用來指定寬檢視所使用的物件:
- ViewSelectedBy 元素會定義寬檢視所顯示的物件。
- TypeName 元素會指定檢視所顯示的 .NET。 需要完整的 .NET 類型名稱。 您必須為檢視指定至少一個類型或選取專案,但是沒有可以指定的元素數目上限。
如需完整格式化檔案的範例,請參閱 Wide View (Basic)。
下列範例使用 ViewSelectedBy 和 SelectionSetName 元素。 使用選取集,其中您有一組相關的物件,這些物件是使用多個檢視來顯示,例如當您為相同物件定義寬檢視和數據表檢視時。 如需如何建立選取集的詳細資訊,請參閱 定義選取集。
<View>
<Name>System.ServiceProcess.ServiceController</Name>
<ViewSelectedBy>
<SelectionSetName>.NET Type Set</SelectionSetName>
</ViewSelectedBy>
<WideControl>...</WideControl>
</View>
下列 XML 元素可用來指定寬檢視所使用的物件:
- ViewSelectedBy 元素會定義寬檢視所顯示的物件。
- SelectionSetName 元素會指定一組可由檢視顯示的物件。 您必須為檢視指定至少一個選取集或類型,但是沒有可以指定的元素數目上限。
下列範例示範如何使用 EntrySelectedBy 元素,定義寬檢視的特定定義所顯示的物件。 使用這個專案,您可以指定物件的 .NET 類型名稱、對象的選取集,或指定何時使用定義的選取條件。 如需如何建立選取條件的詳細資訊,請參閱 定義顯示資料的條件。
<WideEntry>
<EntrySelectedBy>
<TypeName>.NET Type</TypeName>
</EntrySelectedBy>
</WideEntry>
下列 XML 元素可用來指定寬檢視的特定定義所使用的物件:
- EntrySelectedBy 元素會定義定義所顯示的物件。
- TypeName 專案會指定定義所顯示的 .NET。 使用這個專案時,需要完整 .NET 類型名稱。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。
- SelectionSetName 專案 (未顯示) 會指定一組可由這個定義顯示的物件。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。
- SelectionCondition 專案 (未顯示) 會指定必須存在才能使用此定義的條件。 您必須為定義指定至少一個類型、選取集或選取條件,但是沒有可以指定的元素數目上限。 如需定義選取條件的詳細資訊,請參閱 定義顯示資料的條件。
在寬檢視中顯示物件的群組
您可以將寬檢視所顯示的物件分隔成群組。 這並不表示您定義群組,只有 Windows PowerShell 會在特定屬性或腳本的值變更時啟動新的群組。 在下列範例中,每當 System.ServiceProcess.ServiceController.ServiceType 的值 屬性變更時,就會啟動新的群組。
<GroupBy>
<Label>Service Type</Label>
<PropertyName>ServiceType</PropertyName>
</GroupBy>
下列 XML 元素可用來定義何時啟動群組:
- GroupBy 元素會定義啟動新群組的屬性或腳本,並定義群組的顯示方式。
- PropertyName 元素會指定每當其值變更時啟動新群組的屬性。 您必須指定屬性或腳本來啟動群組,但無法同時指定這兩者。
- ScriptBlock 元素會指定每當其值變更時啟動新群組的腳本。 您必須指定文稿或屬性來啟動群組,但無法同時指定這兩者。
- Label 元素會定義在每個群組開頭顯示的標籤。 除了這個專案所指定的文字之外,Windows PowerShell 也會顯示觸發新群組的值,並在標籤前後新增空白行。 這是選擇性的項目。
- CustomControl 元素會定義用來顯示數據的控件。 這是選擇性的項目。
- CustomControlName 元素會指定用來顯示數據的通用或檢視控件。 這是選擇性的項目。
如需定義群組的完整格式化檔案範例,請參閱 Wide View (GroupBy)。
使用格式字串
格式化字串可以新增至寬視圖,以進一步定義數據的顯示方式。 下列範例示範如何為 StartTime 屬性的值定義格式字串。
<WideItem>
<PropertyName>StartTime</PropertyName>
<FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</WideItem>
下列 XML 元素可用來指定格式模式:
- WideItem 元素會指定檢視所顯示的數據。
- PropertyName 專案會指定檢視顯示其值的屬性。 您必須指定屬性或文稿,但無法同時指定兩者。
- FormatString 元素會指定格式模式,定義屬性或腳本值在檢視中的顯示方式
- ScriptBlock 專案 (未顯示) 會指定檢視顯示其值的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。
在下列範例中,會呼叫 ToString 方法來格式化腳本的值。 腳本可以呼叫 物件的任何方法。 因此,如果物件有方法,例如具有格式化參數的 ToString,腳本可以呼叫該方法來格式化腳本的輸出值。
<WideItem>
<ScriptBlock>
[string]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
</ScriptBlock>
</WideItem>
下列 XML 元素可用來呼叫 ToString 方法:
- WideItem 元素會指定檢視所顯示的數據。
- ScriptBlock 專案 (未顯示) 會指定檢視顯示其值的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。