다음을 통해 공유


Format-Table

테이블로 출력 형식을 지정합니다.

구문

Format-Table
      [[-Property] <Object[]>]
      [-AutoSize]
      [-RepeatHeader]
      [-HideTableHeaders]
      [-Wrap]
      [-GroupBy <Object>]
      [-View <string>]
      [-ShowError]
      [-DisplayError]
      [-Force]
      [-Expand <string>]
      [-InputObject <psobject>]
      [<CommonParameters>]

Description

cmdlet은 Format-Table 각 열에 있는 개체의 선택한 속성을 사용하여 명령 출력의 형식을 테이블로 지정합니다. 개체 유형에 따라 각 열에 표시되는 기본 레이아웃과 속성이 결정됩니다. 속성 매개 변수를 사용하여 표시할 속성을 선택할 수 있습니다.

PowerShell은 기본 포맷터를 사용하여 개체 형식이 표시되는 방식을 정의합니다. 파일을 사용하여 .ps1xml 지정된 속성이 있는 출력 테이블을 표시하는 사용자 지정 보기를 만들 수 있습니다. 사용자 지정 보기를 만든 후에는 View 매개 변수를 사용하여 사용자 지정 뷰를 사용하여 테이블을 표시합니다. 뷰에 대한 자세한 내용은 about_Format.ps1xml을 참조하세요.

해시 테이블을 사용하여 개체를 표시하기 전에 개체에 계산 속성을 추가하고 테이블의 열 머리글을 지정할 수 있습니다. 계산된 속성을 추가하려면 Property 또는 GroupBy 매개 변수를 사용합니다. 해시 테이블에 대한 자세한 내용은 about_Hash_Tables를 참조하세요.

예제

예제 1: PowerShell 호스트 서식 지정

다음은 PowerShell의 호스트 프로그램에 대한 정보를 표에 표시하는 예제입니다.

Get-Host | Format-Table -AutoSize

cmdlet은 Get-Host 호스트를 나타내는 System.Management.Automation.Internal.Host.InternalHost 개체를 가져옵니다. 개체는 파이프라인 Format-Table 아래로 전송되어 테이블에 표시됩니다. AutoSize 매개 변수는 잘림을 최소화하기 위해 열 너비를 조정합니다.

예제 2: BasePriority별 프로세스 서식 지정

이 예제에서 프로세스는 BasePriority 속성이 동일한 그룹에 표시됩니다.

Get-Process | Sort-Object -Property BasePriority | Format-Table -GroupBy BasePriority -Wrap

cmdlet은 Get-Process 컴퓨터의 각 프로세스를 나타내는 개체를 가져오고 파이프라인 Sort-Object아래로 보냅니다. 개체는 BasePriority 속성의 순서대로 정렬됩니다.

정렬된 개체는 파이프라인 Format-Table아래로 전송됩니다. GroupBy 매개 변수는 BasePriority 속성의 값에 따라 프로세스 데이터를 그룹으로 정렬합니다. Wrap 매개 변수는 데이터가 잘리지 않도록 합니다.

예제 3: 시작 날짜별로 프로세스 서식 지정

다음은 컴퓨터에서 실행 중인 프로세스에 대한 정보를 표시하는 예제입니다. 개체는 정렬되고 Format-Table 뷰를 사용하여 시작 날짜별로 개체를 그룹화합니다.

Get-Process | Sort-Object StartTime | Format-Table -View StartTime

Get-Process 는 컴퓨터에서 실행되는 프로세스를 나타내는 System.Diagnostics.Process 개체를 가져옵니다. 개체는 파이프라인 Sort-Object아래로 전송되고 StartTime 속성에 따라 정렬됩니다.

정렬된 개체는 파이프라인 Format-Table아래로 전송됩니다. View 매개 변수는 System.Diagnostics.Process 개체의 PowerShell DotNetTypes.format.ps1xml 파일에 정의된 StartTime 보기를 지정합니다. StartTime 보기는 각 프로세스 시작 시간을 짧은 날짜로 변환한 다음 시작 날짜까지 프로세스를 그룹화합니다.

파일에는 DotNetTypes.format.ps1xml 프로세스에 대한 우선 순위 보기가 포함되어 있습니다. 사용자 지정 보기를 사용하여 사용자 고유 format.ps1xml 의 파일을 만들 수 있습니다.

예제 4: 테이블 출력에 사용자 지정 보기 사용

이 예제에서는 사용자 지정 보기에 디렉터리의 내용이 표시됩니다. 사용자 지정 보기는 CreateTime 열을 System.IO.DirectoryInfo에서 만든 System.IO.FileInfo 개체의 테이블 출력Get-ChildItem추가합니다.

이 예제의 사용자 지정 뷰는 PowerShell 소스 코드에 정의된 뷰에서 만들어졌습니다. 이 예제의 뷰를 만드는 데 사용되는 뷰 및 코드에 대한 자세한 내용은 about_Format.ps1xml을 참조 하세요.

Get-ChildItem  -Path C:\Test | Format-Table -View mygciview

Directory: C:\Test

Mode                LastWriteTime              CreationTime         Length Name
----                -------------              ------------         ------ ----
d-----        11/4/2019     15:54       9/24/2019     15:54                Archives
d-----        8/27/2019     14:22       8/27/2019     14:22                Drawings
d-----       10/23/2019     09:38       2/25/2019     09:38                Files
-a----        11/7/2019     11:07       11/7/2019     11:07          11345 Alias.txt
-a----        2/27/2019     15:15       2/27/2019     15:15            258 alias_out.txt
-a----        2/27/2019     15:16       2/27/2019     15:16            258 alias_out2.txt

Get-ChildItem 는 현재 디렉터리의 C:\Test내용을 가져옵니다. System.IO.DirectoryInfoSystem.IO.FileInfo 개체가 파이프라인 아래로 전송됩니다. Format-Table에서는 View 매개 변수를 사용하여 CreationTime 열을 포함하는 사용자 지정 뷰 mygciview지정합니다.

기본 Format-Table 출력에는 Get-ChildItem CreationTime 열이 포함되지 않습니다.

예제 5: 테이블 출력에 속성 사용

이 예제에서는 속성 매개 변수를 사용하여 NameDependentServices 속성을 보여 주는 2열 테이블에 모든 컴퓨터의 서비스를 표시합니다.

Get-Service | Format-Table -Property Name, DependentServices

Get-Service는 컴퓨터의 모든 서비스를 가져오고 System.ServiceProcess.ServiceController 개체를 파이프라인 아래로 보냅니다. Format-Table는 Property 매개 변수를 사용하여 NameDependentServices 속성이 테이블에 표시되도록 지정합니다.

NameDependentServices 는 개체 형식의 속성 중 두 가지입니다. 모든 속성을 보려면 : Get-Service | Get-Member -MemberType Properties.

예제 6: 프로세스 형식 지정 및 실행 시간 계산

다음은 로컬 컴퓨터의 메모장 프로세스에 대한 프로세스 이름과 총 실행 시간이 있는 테이블을 표시하는 예제입니다. 총 실행 시간은 현재 시간에서 각 프로세스의 시작 시간을 빼서 계산됩니다.

Get-Process notepad |
  Format-Table ProcessName, @{Label="TotalRunningTime"; Expression={(Get-Date) - $_.StartTime}}

ProcessName TotalRunningTime
----------- ----------------
notepad     03:20:00.2751767
notepad     00:00:16.7710520

Get-Process 는 로컬 컴퓨터의 모든 메모장 프로세스를 가져오고 개체를 파이프라인 아래로 보냅니다. Format-Table 에는 두 개의 열 이 있는 테이블인 ProcessName, 속성 Get-Process계산된 속성인 TotalRunningTime이 표시됩니다.

TotalRunningTime 속성은 레이블이라는 두 개의 키가 있는 해시 테이블에 의해 지정됩니다. 레이블 키는 속성 이름을 지정합니다. 식 키는 계산을 지정합니다. 식은 각 프로세스 개체의 StartTime 속성을 가져오고 현재 날짜 및 시간을 가져오는 명령의 Get-Date 결과에서 뺍니다.

예제 7: 메모장 프로세스 서식 지정

이 예제에서는 로컬 컴퓨터의 모든 메모장 프로세스에 대한 실행 시간을 가져오는 데 사용합니다Get-CimInstance. ComputerName 매개 변수와 함께 사용하여 Get-CimInstance 원격 컴퓨터에서 정보를 가져올 수 있습니다.

$Processes = Get-CimInstance -Class win32_process -Filter "name='notepad.exe'"
$Processes | Format-Table ProcessName, @{
    Label = "Total Running Time"
    Expression={(Get-Date) - $_.CreationDate}
}

ProcessName Total Running Time
----------- ------------------
notepad.exe 03:39:39.6260693
notepad.exe 00:19:56.1376922

Get-CimInstance는 notepad.exe 명명된 모든 로컬 컴퓨터의 프로세스를 설명하는 WMI Win32_Process 클래스의 인스턴스를 가져옵니다. 프로세스 개체는 변수에 $Processes 저장됩니다.

변수의 $Processes 프로세스 개체는 ProcessName 속성과 새 계산 속성인 Total Running Time을 표시하는 파이프라인Format-Table으로 전송됩니다.

이 명령은 새 계산 속성의 이름인 Total Running Time을 레이블 키에 할당합니다. 식 키의 스크립트 블록은 프로세스 생성 날짜를 현재 날짜에서 빼서 프로세스가 실행된 기간을 계산합니다. cmdlet은 Get-Date 현재 날짜를 가져옵니다. 생성 날짜는 현재 날짜에서 뺍니다. 결과는 총 실행 시간의입니다.

예제 8: 형식 오류 문제 해결

다음 예제에서는 식과 함께 DisplayError 또는 ShowError 매개 변수를 추가한 결과를 보여 줍니다.

Get-Date | Format-Table DayOfWeek,{ $_ / $null } -DisplayError

DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR

Get-Date | Format-Table DayOfWeek,{ $_ / $null } -ShowError

DayOfWeek  $_ / $null
--------- ------------
Wednesday
Failed to evaluate expression " $_ / $null ".
    + CategoryInfo          : InvalidArgument: (11/27/2019 12:53:41:PSObject) [], RuntimeException
    + FullyQualifiedErrorId : mshExpressionError

매개 변수

-AutoSize

cmdlet이 데이터 너비에 따라 열 크기와 열 수를 조정한다는 것을 나타냅니다. 기본적으로 열 크기와 숫자는 뷰에 의해 결정됩니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-DisplayError

명령줄에 cmdlet에 오류가 표시됨을 나타냅니다. 명령에서 식 Format-Table 의 서식을 지정하고 식의 문제를 해결해야 하는 경우 이 매개 변수를 디버깅 보조로 사용할 수 있습니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Expand

컬렉션 개체의 형식과 컬렉션의 개체를 지정합니다. 이 매개 변수는 ICollection(System.Collections) 인터페이스를 지원하는 개체의 서식을 지정하도록 설계되었습니다. 기본값은 EnumOnly입니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • EnumOnly: 컬렉션에 있는 개체의 속성을 표시합니다.
  • CoreOnly: 컬렉션 개체의 속성을 표시합니다.
  • 둘 다: 컬렉션 개체의 속성과 컬렉션에 있는 개체의 속성을 표시합니다.
형식:String
허용되는 값:CoreOnly, EnumOnly, Both
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Force

cmdlet이 모든 오류 정보를 표시하도록 cmdlet을 지시했음을 나타냅니다. DisplayError 또는 ShowError 매개 변수와 함께 사용합니다. 기본적으로 오류 개체가 오류 또는 표시 스트림에 기록되면 일부 오류 정보만 표시됩니다.

특정 .NET 형식의 서식을 지정할 때도 필요합니다. 자세한 내용은 참고 섹션을 참조하세요.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-GroupBy

속성 값에 따라 별도의 테이블에서 정렬된 출력을 지정합니다. 예를 들어 GroupBy를 사용하여 해당 상태에 따라 별도의 테이블에 서비스를 나열할 수 있습니다.

식 또는 속성을 입력합니다. GroupBy 매개 변수는 개체가 정렬되어야 합니다. 개체를 Sort-Object 그룹화하기 전에 cmdlet을 사용합니다 Format-Table .

GroupBy 매개 변수의 값은 새 계산 속성일 수 있습니다. 계산된 속성은 스크립트 블록 또는 해시 테이블일 수 있습니다. 유효한 키-값 쌍은 다음과 같습니다.

  • 이름(또는 레이블) - <string>
  • 식 - <string> 또는 <script block>
  • FormatString - <string>

자세한 내용은 about_Calculated_Properties 참조하세요.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-HideTableHeaders

테이블에서 열 머리글을 생략합니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

서식을 지정할 개체를 지정합니다. 개체를 포함하는 변수를 입력하거나 개체를 가져오는 명령 또는 식을 입력하세요.

형식:PSObject
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Property

표시에 표시되는 개체 속성과 표시되는 순서를 지정합니다. 하나 이상의 속성 이름을 쉼표로 구분하여 입력하거나 해시 테이블을 사용하여 계산된 속성을 표시합니다. 와일드카드가 허용됩니다.

이 매개 변수를 생략하면 표시에 표시되는 속성은 첫 번째 개체의 속성에 따라 달라집니다. 예를 들어 첫 번째 개체에 PropertyAPropertyB가 있지만 후속 개체에 PropertyA, PropertyBPropertyC가 있는 경우 PropertyAPropertyB 헤더만 표시됩니다.

Property 매개 변수는 선택 사항입니다. 동일한 명령에서 속성 매개 변수를 사용할 수 없습니다.

Property 매개 변수의 값은 새 계산 속성일 수 있습니다. 계산된 속성은 스크립트 블록 또는 해시 테이블일 수 있습니다. 유효한 키-값 쌍은 다음과 같습니다.

  • 이름(또는 레이블) <string>
  • 식 - <string> 또는 <script block>
  • FormatString - <string>
  • 너비 - <int32> 보다 커야 합니다. 0
  • 맞춤 - 값은 LeftCenterRight

자세한 내용은 about_Calculated_Properties 참조하세요.

형식:Object[]
Position:0
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-RepeatHeader

화면이 가득 찼을 때마다 테이블의 머리글을 표시하는 반복합니다. 반복되는 헤더는 출력이 화면 읽기 프로그램과 같은 페이징 또는 more 페이징과 같은 less 호출기로 파이프되는 경우에 유용합니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ShowError

이 매개 변수는 파이프라인을 통해 오류를 보냅니다. 명령에서 식 Format-Table 의 서식을 지정하고 식의 문제를 해결해야 하는 경우 이 매개 변수를 디버깅 보조로 사용할 수 있습니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-View

PowerShell 5.1 및 이전 버전에서는 기본 보기가 저장된 $PSHOME파일에 정의 *.format.ps1xml 됩니다.

View 매개 변수를 사용하면 테이블에 대한 대체 형식 또는 사용자 지정 보기를 지정할 수 있습니다. 기본 PowerShell 보기를 사용하거나 사용자 지정 보기를 만들 수 있습니다. 사용자 지정 보기를 만드는 방법에 대한 자세한 내용은 about_Format.ps1xml을 참조하세요.

View 매개 변수에 대한 대체 및 사용자 지정 뷰는 테이블 형식을 사용해야 합니다. 그렇지 않으면 Format-Table 실패합니다. 대체 보기가 목록인 경우 cmdlet을 Format-List 사용합니다. 대체 뷰가 목록이나 테이블이 아닌 경우 cmdlet을 Format-Custom 사용합니다.

동일한 명령에서 속성 매개 변수를 사용할 수 없습니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Wrap

다음 줄의 열 너비를 초과하는 텍스트를 표시합니다. 기본적으로 열 너비를 초과하는 텍스트는 잘립니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

PSObject

모든 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

Microsoft.PowerShell.Commands.Internal.Format

이 cmdlet은 테이블을 나타내는 형식 개체를 반환합니다.

참고

Windows PowerShell에는 다음 별칭이 포함됩니다.Format-Table

  • ft

Property 매개 변수와 함께 사용 Format-Table 하려면 다음 조건 중에서 Force 매개 변수를 포함해야 합니다.