다음을 통해 공유


목록 보기 만들기

목록 보기는 단일 열에 데이터를 순차적으로 표시합니다. 목록에 표시되는 데이터는 .NET 속성의 값 또는 스크립트 값일 수 있습니다.

목록 보기 표시

다음 출력에서는 Windows PowerShell이 Get-Service cmdlet에서 반환되는 System.ServiceProcess.ServiceController 개체의 속성을 표시하는 방법을 보여 줍니다. 이 예제에서는 세 개의 개체가 반환되었으며 각 개체는 앞의 개체와 빈 줄로 구분되었습니다.

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 요소에 의해 정의됩니다.

다음 예제에서는 ViewSelectedBy 사용하여 목록 보기에 표시되는 개체를 정의하고 TypeName 요소를 방법을 보여 줍니다. 지정할 수 있는 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 작성