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.DirectoryInfo 및 System.IO.FileInfo 개체가 파이프라인 아래로 전송됩니다.
Format-Table
에서는 View 매개 변수를 사용하여 CreationTime 열을 포함하는 사용자 지정 뷰 mygciview를 지정합니다.
기본 Format-Table
출력에는 Get-ChildItem
CreationTime 열이 포함되지 않습니다.
예제 5: 테이블 출력에 속성 사용
이 예제에서는 속성 매개 변수를 사용하여 Name 및 DependentServices 속성을 보여 주는 2열 테이블에 모든 컴퓨터의 서비스를 표시합니다.
Get-Service | Format-Table -Property Name, DependentServices
Get-Service
는 컴퓨터의 모든 서비스를 가져오고 System.ServiceProcess.ServiceController 개체를 파이프라인 아래로 보냅니다. Format-Table
는 Property 매개 변수를 사용하여 Name 및 DependentServices 속성이 테이블에 표시되도록 지정합니다.
Name 및 DependentServices 는 개체 형식의 속성 중 두 가지입니다. 모든 속성을 보려면 : 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
InvalidArgument: Failed to evaluate expression " $_ / $null ".
매개 변수
-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
표시에 표시되는 개체 속성과 표시되는 순서를 지정합니다. 하나 이상의 속성 이름을 쉼표로 구분하여 입력하거나 해시 테이블을 사용하여 계산된 속성을 표시합니다. 와일드카드가 허용됩니다.
이 매개 변수를 생략하면 표시에 표시되는 속성은 첫 번째 개체의 속성에 따라 달라집니다. 예를 들어 첫 번째 개체에 PropertyA 및 PropertyB가 있지만 후속 개체에 PropertyA, PropertyB 및 PropertyC가 있는 경우 PropertyA 및 PropertyB 헤더만 표시됩니다.
Property 매개 변수는 선택 사항입니다. 동일한 명령에서 속성 및 뷰 매개 변수를 사용할 수 없습니다.
Property 매개 변수의 값은 새 계산 속성일 수 있습니다. 계산된 속성은 스크립트 블록 또는 해시 테이블일 수 있습니다. 유효한 키-값 쌍은 다음과 같습니다.
- 이름(또는 레이블)
<string>
- 식 -
<string>
또는<script block>
- FormatString -
<string>
- 너비 -
<int32>
보다 커야 합니다.0
- 맞춤 - 값은
Left
Center
Right
자세한 내용은 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 6부터 기본 보기는 PowerShell C#
소스 코드에 정의됩니다. PowerShell 5.1 및 이전 버전의 파일은 *.format.ps1xml
PowerShell 6 이상 버전에 없습니다.
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 |
입력
모든 개체를 이 cmdlet으로 파이프할 수 있습니다.
출력
Microsoft.PowerShell.Commands.Internal.Format
이 cmdlet은 테이블을 나타내는 형식 개체를 반환합니다.
참고
PowerShell에는 다음 별칭이 포함됩니다.Format-Table
- 모든 플랫폼:
ft
PowerShell 7.2에는 출력 색을 지정하는 새로운 기능이 도입되었습니다. 자동 변수를 사용하여 색을 $PSStyle
관리할 수 있습니다. 속성에서 $PSStyle.Formatting.TableHeader
표시 하는 테이블의 머리글에 사용 하는 Format-Table
색을 정의 합니다. 이 설정에 대한 자세한 내용은 about_ANSI_Terminals 참조하세요.
Property 매개 변수와 함께 사용 Format-Table
하려면 다음 조건 중에서 Force 매개 변수를 포함해야 합니다.
입력 개체는 일반적으로 메서드를 사용하여 대역 외 형식으로 지정됩니다
ToString()
. 이는 기본 제공 숫자 형식(예:[int]
[long]
등)의 상위 집합인 .NET 기본 형식 및 .NET 기본 형식에 적용됩니다[string]
.입력 개체에는 공용 속성이 없습니다.
입력 개체는 PowerShell이 성공 출력 스트림 이외의 출력 스트림에 사용하는 래퍼 유형의 인스턴스입니다. 이는 이러한 래퍼 형식이 먼저 ErrorVariable과 같은 일반적인 매개 변수를 통해 캡처하거나 같은 리디렉션
*>&1
을 사용해야 하는 성공 출력 스트림으로 전송되는 경우에만 적용됩니다.
관련 링크
PowerShell