다음을 통해 공유


Format-Table

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

구문

All

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

Description

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

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-ChildItemCreationTime 열이 포함되지 않습니다.

예제 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-CimInstancenotepad.exe 명명된 모든 로컬 컴퓨터의 프로세스를 설명하는 WMI Win32_Process 클래스의 인스턴스를 가져옵니다. 프로세스 개체는 변수에 $Processes 저장됩니다.

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

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

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

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

Get-Date | Format-Table DayOfWeek, { $_ / $null } -DisplayError
DayOfWeek  $_ / $null
--------- ------------
Wednesday #ERR
Get-Date | Format-Table DayOfWeek, { $_ / $null } -ShowError
DayOfWeek  $_ / $null
--------- ------------
Wednesday

InvalidArgument: Failed to evaluate expression " $_ / $null ".

매개 변수

-AutoSize

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-DisplayError

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Expand

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

  • EnumOnly: 컬렉션에 있는 개체의 속성을 표시합니다.
  • CoreOnly: 컬렉션 개체의 속성을 표시합니다.
  • 둘 다: 컬렉션 개체의 속성과 컬렉션에 있는 개체의 속성을 표시합니다.

매개 변수 속성

형식:String
Default value:None
허용되는 값:CoreOnly, EnumOnly, Both
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Force

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

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-GroupBy

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

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

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

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

보다 자세한 내용을 보려면 about_Calculated_Properties을 참조하십시오.

매개 변수 속성

형식:Object
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-HideTableHeaders

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-InputObject

포맷할 개체를 지정합니다. 개체가 포함된 변수를 입력하거나 개체를 가져오는 명령이나 식을 입력합니다.

매개 변수 속성

형식:PSObject
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Property

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

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

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

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

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

보다 자세한 내용을 보려면 about_Calculated_Properties을 참조하십시오.

매개 변수 속성

형식:

Object[]

Default value:None
와일드카드 지원:True
DontShow:False

매개 변수 집합

(All)
Position:0
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-RepeatHeader

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-ShowError

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-View

PowerShell 6부터 기본 보기는 PowerShell C# 소스 코드에 정의됩니다. PowerShell 5.1 및 이전 버전의 *.format.ps1xml 파일은 PowerShell 6 이상 버전에 없습니다.

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

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

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

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Wrap

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

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

PSObject

모든 객체를 이 cmdlet에 파이핑할 수 있습니다.

출력

Microsoft.PowerShell.Commands.Internal.Format

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

참고

PowerShell에는 Format-Table에 대한 다음과 같은 별칭들이 포함되어 있습니다.

  • 모든 플랫폼:
    • ft

PowerShell 7.2에는 출력 색을 지정하는 새로운 기능이 도입되었습니다. 자동 변수를 사용하여 색을 $PSStyle 관리할 수 있습니다. 속성에서 $PSStyle.Formatting.TableHeader 표시 하는 테이블의 머리글에 사용 하는 Format-Table색을 정의 합니다. 이 설정에 대한 자세한 내용은 about_ANSI_Terminals 참조하세요.

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

  • 입력 개체는 일반적으로 메서드를 사용하여 대역 외 형식으로 지정됩니다 ToString() . 이는 기본 제공 숫자 형식(예: [int][long]등)의 상위 집합인 .NET 기본 형식 및 .NET 기본 형식에 적용됩니다[string].

  • 입력 개체에는 공용 속성이 없습니다.

  • 입력 개체는 PowerShell이 성공 출력 스트림 이외의 여러 출력 스트림을 처리하기 위해 사용하는 래퍼 유형의 인스턴스입니다. 이는 이러한 래퍼 형식이 먼저 ErrorVariable 과 같은 일반적인 매개 변수를 통해 캡처하거나 같은 리디렉션 *>&1을 사용해야 하는 성공 출력 스트림으로 전송되는 경우에만 적용됩니다.