기존 셸에서는 각 도구 또는 명령이 해당 출력의 형식을 결정합니다. 일부 도구는 사용자가 출력을 지정할 수 있으며 출력 형식을 제어하는 특수 매개 변수가 포함되어 있습니다.

Windows PowerShell에서는 다음과 같은 format cmdlet만 출력 형식을 지정할 수 있습니다.

  • Format-List

  • Format-Custom

  • Format-Table

  • Format-Wide

그 밖에 출력 형식을 지정할 수 있는 다른 cmdlet은 없습니다. 따라서 여러 도구의 형식 지정 루틴 및 매개 변수를 학습할 필요가 없습니다. Format cmdlet 및 해당 매개 변수만 알고 있으면 됩니다.

명령을 실행하면 Windows PowerShell은 표시되는 데이터 형식에 따라 기본 포맷터를 호출합니다. 포맷터는 표시되는 출력의 속성 및 해당 속성을 목록에 표시할지 또는 테이블에 표시할지를 결정합니다.

예를 들어 Get-Service cmdlet을 사용하는 경우 기본적으로 다음과 같이 세 개의 열이 있는 테이블이 표시됩니다.

C:\PS> get-service
Status   Name               DisplayName
------   ----               -----------
Running  AdtAgent           Event Forwarder
Stopped  Alerter            Alerter
Running  ALG                Application Layer Gateway Service

임의의 cmdlet에서 출력 형식을 변경하려면 파이프라인 연산자(|)를 사용하여 명령의 출력을 Format cmdlet으로 보냅니다.

예를 들어 다음 명령은 Get-Service 명령의 출력을 Format-List cmdlet으로 보냅니다. 결과적으로 서비스 데이터의 형식은 각 서비스에 대한 목록으로 지정됩니다.

C:\PS> get-service | format-list
Name                : AdtAgent
DisplayName         : Event Forwarder
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {eventlog, dnscache}
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : Alerter
DisplayName         : Alerter
Status              : Stopped
DependentServices   : {}
ServicesDependedOn  : {LanmanWorkstation}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
ServiceType         : Win32ShareProcess

Name                : ALG
DisplayName         : Application Layer Gateway Service
Status              : Running
DependentServices   : {}

이 형식에서는 테이블 대신 목록에 데이터가 표시될 뿐만 아니라 각 서비스에 대한 추가 정보도 표시됩니다. 각 서비스에 대한 데이터를 세 개의 열에 나타내는 대신 아홉 개의 데이터 행으로 보여 줍니다. Format-List는 추가 서비스 정보를 검색하지 않았습니다. Get-Service에서 검색한 개체에는 항상 데이터가 있었지만 기본 포맷터인 Format-Table은 화면에 세 개가 넘는 열을 표시할 수 없으므로 데이터가 생략되었습니다.

데이터를 목록에 표시할지 또는 테이블에 표시할지를 결정하는 것 외에 표시할 개체의 속성도 결정할 수 있습니다. 예를 들어 Get-Service의 기본 표시에는 서비스 개체의 Status, Name 및 DisplayName 속성만 표시됩니다.

개체의 모든 속성을 보려면 파이프라인 연산자(|)를 사용하여 명령의 출력을 Get-Member cmdlet으로 보냅니다. 예를 들어 서비스 개체의 모든 속성을 보려면 다음과 같이 입력하십시오.

get-service | get-member -membertype *property

   TypeName: System.ServiceProcess.ServiceController

Name                MemberType    Definition
----                ----------    ----------
Name                AliasProperty Name = ServiceName
CanPauseAndContinue Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown         Property      System.Boolean CanShutdown {get;}
CanStop             Property      System.Boolean CanStop {get;}
Container           Property      System.ComponentModel.IContainer Container {get;}
DependentServices   Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName         Property      System.String DisplayName {get;set;}
MachineName         Property      System.String MachineName {get;set;}
ServiceHandle       Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName         Property      System.String ServiceName {get;set;}
ServicesDependedOn  Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType         Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                Property      System.ComponentModel.ISite Site {get;set;}
Status              Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

이러한 속성은 모두 Get-Service가 각 서비스에 대해 검색하는 개체에 포함되어 있으므로 사용자는 속성의 전체 또는 일부를 표시할 수 있습니다. Format cmdlet의 Property 매개 변수를 사용하여 표시할 속성과 표시 순서를 선택합니다. 예를 들어 다음 명령은 Format-Table 명령을 사용하여 서비스의 Name, ServiceType 및 CanShutDown 속성만 표시합니다.

get-service | format-table name, Servicetype, Canshutdown

이것은 Windows PowerShell 표시를 사용하여 수행할 수 있는 작업의 시작에 불과합니다. 자세한 내용은 다음 명령을 사용하여 Format cmdlet에 대한 도움말을 참조하십시오.

get-help format-list
get-help format-table
get-help format-wide
get-help format-custom




목차