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