共用方式為


建立清單檢視

清單檢視會以單一數據行顯示資料(循序順序)。 清單中顯示的數據可以是 .NET 屬性的值或腳本的值。

清單檢視顯示

下列輸出顯示 Windows PowerShell 如何顯示 System.ServiceProcess.ServiceController 的屬性, 由 get-Service Cmdlet 所傳回 物件。 在此範例中,會傳回三個物件,每個物件都以空白行分隔與上述物件。

Get-Service | Format-List
Name                : AEADIFilters
DisplayName         : Andrea ADI Filters Service
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : AeLookupSvc
DisplayName         : Application Experience
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
ServiceType         : Win32ShareProcess

Name                : AgereModemAudio
DisplayName         : Agere Modem Call Progress Audio
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
ServiceType         : Win32OwnProcess
...

定義清單檢視

下列 XML 顯示列表檢視架構,以顯示 System.ServiceProcess.ServiceController 對象的數個屬性。 您必須指定清單檢視中顯示的每個屬性。

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <TypeName>System.ServiceProcess.ServiceController</TypeName>
  </ViewSelectedBy>
  <ListControl>
    <ListEntries>
      <ListEntry>
        <ListItems>
          <ListItem>
            <PropertyName>Name</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>DisplayName</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>Status</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>ServiceType</PropertyName>
          </ListItem>
        </ListItems>
      </ListEntry>
    </ListEntries>
  </ListControl>
</View>

下列 XML 元素可用來定義清單檢視:

  • View 元素是清單檢視的父元素。 (這是數據表、寬和自定義控件檢視的相同父元素。

  • Name 專案會指定檢視的名稱。 所有檢視都需要此元素。

  • ViewSelectedBy 元素會定義使用檢視的物件。 這個元素是必要的。

  • GroupBy 元素會在顯示新的物件群組時定義。 每當特定屬性或腳本的值變更時,就會啟動新的群組。 這是選擇性的項目。

  • Controls 元素會定義清單檢視所定義的自定義控件。 控制項可讓您進一步指定資料的顯示方式。 這是選擇性的項目。 檢視可以定義自己的自定義控件,也可以使用格式化檔案中任何檢視可以使用的通用控件。 如需自訂控制元件的詳細資訊,請參閱 建立自定義控制項

  • ListControl 元素會定義檢視中顯示的內容及其格式化方式。 與所有其他檢視類似,清單檢視可以顯示腳本所產生的物件屬性或值的值。

如需定義簡單清單檢視的完整格式化檔案範例,請參閱 清單檢視 (基本)

提供清單檢視的定義

清單檢視可以使用 ListControl 元素的子元素來提供一或多個定義。 一般而言,檢視只會有一個定義。 在下列範例中,檢視會提供單一定義,以顯示 System.Diagnostics.Process 對象的數個屬性。 清單檢視可以顯示屬性的值或腳本的值(如範例中未顯示)。

<ListControl>
    <ListEntries>
      <ListEntry>
        <ListItems>
          <ListItem>
            <PropertyName>Name</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>DisplayName</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>Status</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>ServiceType</PropertyName>
          </ListItem>
        </ListItems>
      </ListEntry>
    </ListEntries>
  </ListControl>

下列 XML 元素可用來提供清單檢視的定義:

  • ListControl 元素及其子元素會定義檢視中顯示的專案。

  • ListEntries 元素會提供檢視的定義。 在大部分情況下,檢視只會有一個定義。 這個元素是必要的。

  • ListEntry 元素會提供檢視的定義。 至少需要一個 ListEntry;不過,您可以新增的項目數目沒有上限。 在大部分情況下,檢視只會有一個定義。

  • EntrySelectedBy 元素會指定特定定義所顯示的物件。 這個元素是選擇性的,只有在您定義多個 ListEntry 顯示不同物件的元素時,才需要此元素。

  • ListItems 元素會指定屬性和腳本,其值會顯示在清單檢視的數據列中。

  • ListItem 元素會指定屬性或腳本,其值會顯示在清單檢視的數據列中。 清單檢視必須至少指定一個屬性或腳本。 可以指定的數據列數目沒有上限。

  • PropertyName 專案會指定其值顯示在數據列中的屬性。 您必須指定屬性或文稿,但無法同時指定兩者。

  • ScriptBlock 元素會指定其值顯示在數據列中的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。

  • Label 元素會指定顯示在數據列中屬性或腳本值左邊的標籤。 這是選擇性的項目。 如果未指定標籤,則會顯示屬性的名稱或腳本。 如需完整範例,請參閱 清單檢視(卷標)

  • ItemSelectionCondition 元素會指定必須存在才能顯示數據列的條件。 如需將條件新增至清單檢視的詳細資訊,請參閱 定義顯示資料的條件。 這是選擇性的項目。

  • FormatString 元素會指定用來顯示屬性或腳本值的模式。 這是選擇性的項目。

如需定義簡單清單檢視的完整格式化檔案範例,請參閱 清單檢視 (基本)

定義使用清單檢視的物件

有兩種方式可以定義哪些 .NET 物件使用清單檢視。 您可以使用 ViewSelectedBy 元素來定義可由檢視的所有定義顯示的物件,也可以使用 EntrySelectedBy 元素來定義檢視的特定定義所顯示的物件。 在大部分情況下,檢視只有一個定義,因此物件通常是由 viewSelectedBy 元素 定義。

下列範例示範如何使用 viewSelectedByTypeName 元素,定義清單檢視所顯示的物件。 您可以指定 TypeName 元素的數目沒有限制,而且其順序並不重要。

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <ListControl>...</ListControl>
</View>

下列 XML 元素可用來指定清單檢視所使用的物件:

  • ViewSelectedBy 元素會定義清單檢視所顯示的物件。

  • TypeName 專案會指定檢視所顯示的 .NET 物件。 需要完整的 .NET 類型名稱。 您必須為檢視指定至少一個類型或選取專案,但是沒有可以指定的元素數目上限。

如需完整格式檔案的範例,請參閱 清單檢視 (基本)

下列範例使用 ViewSelectedBySelectionSetName 元素。 使用選取集,其中您有一組相關的物件,這些物件是使用多個檢視來顯示,例如當您定義清單檢視和相同對象的數據表檢視時。 如需如何建立選取集的詳細資訊,請參閱 定義選取集

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <SelectionSetName>.NET Type Set</SelectionSetName>
  </ViewSelectedBy>
  <ListControl>...</ListControl>
</View>

下列 XML 元素可用來指定清單檢視所使用的物件:

  • ViewSelectedBy 元素會定義清單檢視所顯示的物件。

  • SelectionSetName 元素會指定一組可由檢視顯示的物件。 您必須為檢視指定至少一個選取集或類型,但是沒有可以指定的元素數目上限。

下列範例示範如何使用 EntrySelectedBy 元素,定義清單檢視的特定定義所顯示的物件。 使用這個專案,您可以指定物件的 .NET 類型名稱、對象的選取集,或指定何時使用定義的選取條件。 如需如何建立選取條件的詳細資訊,請參閱 定義顯示資料的條件

<ListEntry>
  <EntrySelectedBy>
    <TypeName>.NET Type</TypeName>
  </EntrySelectedBy>
</ListEntry>

下列 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 元素會指定用來顯示數據的通用或檢視控件。 這是選擇性的項目。

如需定義群組的完整格式化檔案範例,請參閱 清單檢視 (GroupBy)

使用格式字串

格式化字串可以新增至檢視,以進一步定義數據的顯示方式。 下列範例示範如何為 StartTime 屬性的值定義格式字串。

<ListItem>
  <PropertyName>StartTime</PropertyName>
  <FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</ListItem>

下列 XML 元素可用來指定格式模式:

  • ListItem 元素會指定檢視所顯示的數據。

  • PropertyName 專案會指定檢視顯示其值的屬性。 您必須指定屬性或文稿,但無法同時指定兩者。

  • FormatString 專案會指定格式模式,定義屬性或腳本值在檢視中的顯示方式。

  • ScriptBlock 專案 (未顯示) 會指定檢視顯示其值的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。

在下列範例中,會呼叫 ToString 方法來格式化腳本的值。 腳本可以呼叫 物件的任何方法。 因此,如果物件有方法,例如具有格式化參數的 ToString,腳本可以呼叫該方法來格式化腳本的輸出值。

<ListItem>
  <ScriptBlock>
    [string]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
  </ScriptBlock>
</ListItem>

下列 XML 元素可用來呼叫 ToString 方法:

  • ListItem 元素會指定檢視所顯示的數據。

  • ScriptBlock 專案 (未顯示) 會指定檢視顯示其值的腳本。 您必須指定文稿或屬性,但無法同時指定兩者。

另請參閱

撰寫 Windows PowerShell Cmdlet