형식 명령을 사용하여 출력 보기 변경Using Format Commands to Change Output View

Windows PowerShell에는 특정 개체에 대해 표시할 속성을 제어할 수 있는 일련의 cmdlet이 있습니다.Windows PowerShell has a set of cmdlets that allow you to control which properties are displayed for particular objects. 이러한 cmdlet의 이름은 모두 동사 Format으로 시작되며,The names of all the cmdlets begin with the verb Format. 표시할 속성을 하나 이상 선택하는 데 사용할 수 있습니다.They let you select one or more properties to show.

Format cmdlet으로는 Format-Wide, Format-List, Format-TableFormat-Custom이 있습니다.The Format cmdlets are Format-Wide, Format-List, Format-Table, and Format-Custom. 이 사용자 가이드에서는 Format-Wide, Format-ListFormat-Table cmdlet에 대해서만 설명합니다.We will only describe the Format-Wide, Format-List, and Format-Table cmdlets in this user's guide.

각 Format cmdlet에는 표시할 특정 속성을 지정하지 않을 경우 사용되는 기본 속성이 있습니다.Each format cmdlet has default properties that will be used if you do not specify specific properties to display. 또한 각 cmdlet은 동일한 매개 변수 이름인 Property를 사용하여 표시할 속성을 지정합니다.Each cmdlet also uses the same parameter name, Property, to specify which properties you want to display. Format-Wide는 하나의 속성만 표시하기 때문에 해당 Property 매개 변수가 하나의 값만 사용하지만 Format-ListFormat-Table의 Property 매개 변수는 속성 이름 목록을 사용합니다.Because Format-Wide only shows a single property, its Property parameter only takes a single value, but the property parameters of Format-List and Format-Table will accept a list of property names.

실행 중인 두 개의 Windows PowerShell 인스턴스에 Get-Process -Name powershell 명령을 사용하면 다음과 같은 내용이 출력됩니다.If you use the command Get-Process -Name powershell with two instances of Windows PowerShell running, you get output that looks like this:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    995       9    30308      27996   152     2.73   2760 powershell
    331       9    23284      29084   143     1.06   3448 powershell

이 섹션의 나머지 부분에서는 Format cmdlet을 사용하여 이 명령 출력의 표시 방법을 변경하는 방법을 설명합니다.In the rest of this section, we will explore how to use Format cmdlets to change the way the output of this command is displayed.

Format-Wide를 사용하여 단일 항목 출력Using Format-Wide for Single-Item Output

기본적으로 Format-Wide cmdlet은 개체의 기본 속성만 표시합니다.The Format-Wide cmdlet, by default, displays only the default property of an object. 다음과 같이 각 개체와 연결된 정보는 하나의 열에 표시됩니다.The information associated with each object is displayed in a single column:

PS> Get-Process -Name powershell | Format-Wide

powershell                              powershell

다음과 같이 기본 속성이 아닌 속성을 지정할 수도 있습니다.You can also specify a non-default property:

PS> Get-Process -Name powershell | Format-Wide -Property Id

2760                                    3448

열이 포함된 Format-Wide 표시 제어Controlling Format-Wide Display with Column

Format-Wide cmdlet을 사용하면 한 번에 하나의 속성만 표시할 수 있습니다.With the Format-Wide cmdlet, you can only display a single property at a time. 이 cmdlet은 한 줄에 하나의 요소만 표시되는 간단한 목록을 표시하는 데 유용합니다.This makes it useful for displaying simple lists that show only one element per line. 간단한 목록을 표시하려면 다음과 같이 입력하여 Column 매개 변수의 값을 1로 설정합니다.To get a simple listing, set the value of the Column parameter to 1 by typing:

Get-Command Format-Wide -Property Name -Column 1

Format-List를 사용하여 목록 보기Using Format-List for a List View

Format-List cmdlet은 다음과 같이 각 속성에 레이블이 지정되어 있고 이러한 각 속성이 별도의 줄에 표시되는 목록 형식으로 개체를 표시합니다.The Format-List cmdlet displays an object in the form of a listing, with each property labeled and displayed on a separate line:

PS> Get-Process -Name powershell | Format-List

Id      : 2760
Handles : 1242
CPU     : 3.03125
Name    : powershell

Id      : 3448
Handles : 328
CPU     : 1.0625
Name    : powershell

다음과 같이 속성을 원하는 대로 지정할 수 있습니다.You can specify as many properties as you want:

PS> Get-Process -Name powershell | Format-List -Property ProcessName,FileVersion
,StartTime,Id

ProcessName : powershell
FileVersion : 1.0.9567.1
StartTime   : 2006-05-24 13:42:00
Id          : 2760

ProcessName : powershell
FileVersion : 1.0.9567.1
StartTime   : 2006-05-24 13:54:28
Id          : 3448

와일드카드와 함께 Format-List를 사용하여 자세한 정보 보기Getting Detailed Information by Using Format-List with Wildcards

Format-List cmdlet을 사용하면 와일드카드를 해당 Property 매개 변수의 값으로 사용할 수 있습니다.The Format-List cmdlet lets you use a wildcard as the value of its Property parameter. 이 경우 자세한 정보를 표시할 수 있습니다.This lets you display detailed information. 필요한 것보다 많은 정보가 개체에 포함되는 경우가 종종 있는데, 이는 Windows PowerShell이 기본적으로 모든 속성 값을 표시하지 않기 때문입니다.Often, objects include more information than you need, which is why Windows PowerShell does not show all property values by default. 개체의 속성을 모두 표시하려면 Format-List -Property * 명령을 사용합니다.To show all of properties of an object, use the Format-List -Property * command. 다음 명령은 단일 프로세스의 출력을 위해 60개 이상의 줄을 생성합니다.The following command generates over 60 lines of output for a single process:

Get-Process -Name powershell | Format-List -Property *

Format-List 명령은 자세한 정보를 표시하는 데 유용하지만 많은 항목의 개요를 출력하려는 경우에는 대개 간단한 표 형식의 보기가 더 유용합니다.Although the Format-List command is useful for showing detail, if you want an overview of output that includes many items, a simpler tabular view is often more useful.

Format-Table을 사용하여 표 형식으로 출력Using Format-Table for Tabular Output

속성 이름이 지정되지 않은 Format-Table cmdlet을 사용하여 Get-Process 명령의 출력 형식을 지정하면 형식을 지정하지 않고 이와 같은 작업을 수행할 때와 똑같은 내용이 출력됩니다.If you use the Format-Table cmdlet with no property names specified to format the output of the Get-Process command, you get exactly the same output as you do without performing any formatting. 그 이유는 대부분의 Windows PowerShell 개체와 마찬가지로 프로세스도 대개 표 형식으로 표시되기 때문입니다.The reason is that processes are usually displayed in a tabular format, as are most Windows PowerShell objects.

PS> Get-Process -Name powershell | Format-Table

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   1488       9    31568      29460   152     3.53   2760 powershell
    332       9    23140        632   141     1.06   3448 powershell

Format-Table 출력 향상(AutoSize)Improving Format-Table Output (AutoSize)

표 형식의 보기는 비교 가능한 많은 정보를 표시하는 데 유용하지만 열이 너무 좁아 데이터를 모두 표시할 수 없는 경우에는 정보를 해석하기 어려울 수 있습니다.Although a tabular view is useful for displaying a lot of comparable information, it may be difficult to interpret if the display is too narrow for the data. 예를 들어 프로세스의 Path, ID, Name 및 Company를 표시하려고 하면 다음과 같이 프로세스의 Path 열과 Company 열의 출력이 잘립니다.For example, if you try to display process path, ID, name, and company, you get truncated output for the process path and the company column:

PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company

Path                Name                                 Id Company
----                ----                                 -- -------
C:\Program Files... powershell                         2836 Microsoft Corpor...

Format-Table 명령을 실행할 때 AutoSize 매개 변수를 지정하면 Windows PowerShell은 표시할 실제 데이터를 기준으로 열 너비를 계산합니다.If you specify the AutoSize parameter when you run the Format-Table command, Windows PowerShell will calculate column widths based on the actual data you are going to display. 이렇게 하면 다음과 같이 Path 열은 읽을 수 있지만 Company 열은 여전히 잘린 채로 있습니다.This makes the Path column readable, but the company column remains truncated:

PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company -
AutoSize

Path                                                    Name         Id Company
----                                                    ----         -- -------
C:\Program Files\Windows PowerShell\v1.0\powershell.exe powershell 2836 Micr...

Format-Table cmdlet을 실행하면 여전히 데이터가 잘릴 수 있지만 화면 끝에 있는 데이터만 잘립니다.The Format-Table cmdlet might still truncate data, but it will only do so at the end of the screen. 마지막으로 표시되는 속성을 제외하고 속성에는 가장 긴 데이터 요소를 올바로 표시하는 데 필요한 충분한 크기가 지정됩니다.Properties, other than the last one displayed, are given as much size as they need for their longest data element to display correctly. Property 값 목록에서 PathCompany의 위치를 바꾸면 회사 이름은 보이지만 경로는 잘립니다.You can see that company name is visible but path is truncated if you swap the locations of Path and Company in the Property value list:

PS> Get-Process -Name powershell | Format-Table -Property Company,Name,Id,Path -
AutoSize

Company               Name         Id Path
-------               ----         -- ----
Microsoft Corporation powershell 2836 C:\Program Files\Windows PowerShell\v1...

Format-Table 명령은 속성 목록의 시작 부분에 더 가까이 있을수록 더 중요한 속성으로 간주하고The Format-Table command assumes that the nearer a property is to the beginning of the property list, the more important it is. 시작 부분에 가장 가까이 있는 속성을 완전히 표시하려고 합니다.So it attempts to display the properties nearest the beginning completely. Format-Table 명령은 속성을 모두 표시할 수 없는 경우 일부 열을 표시에서 제거하고 경고를 표시합니다.If the Format-Table command cannot display all the properties, it will remove some columns from the display and provide a warning. 다음과 같이 Name을 목록의 마지막 속성으로 지정하면 이 동작을 재현할 수 있습니다.You can see this behavior if you make Name the last property in the list:

PS> Get-Process -Name powershell | Format-Table -Property Company,Path,Id,Name -
AutoSize

WARNING: column "Name" does not fit into the display and was removed.

Company               Path                                                    I
                                                                              d
-------               ----                                                    -
Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\powershell.exe 6

위의 출력에서는 목록에 맞게 조정하기 위해 ID 열이 잘리고 해당 열 머리글이 두 줄로 표시됩니다.In the output above, the ID column is truncated to make it fit into the listing, and the column headings are stacked up. 열 크기를 자동으로 조정해도 항상 원하는 대로 표시되지는 않습니다.Automatically resizing the columns does not always do what you want.

열에 Format-Table 출력 래핑(Wrap)Wrapping Format-Table Output in Columns (Wrap)

Wrap 매개 변수를 사용하여 긴 Format-Table 데이터를 해당 열 안에서 래핑할 수 있습니다.You can force lengthy Format-Table data to wrap within its display column by using the Wrap parameter. 다음과 같이 Wrap 매개 변수를 단독으로 사용하는 경우에도 AutoSize를 지정하지 않으면 기본 설정이 사용되기 때문에 예상되는 작업을 수행하지 않아도 됩니다.Using the Wrap parameter alone will not necessarily do what you expect, since it uses default settings if you do not also specify AutoSize:

PS> Get-Process -Name powershell | Format-Table -Wrap -Property Name,Id,Company,
Path

Name                                 Id Company             Path
----                                 -- -------             ----
powershell                         2836 Microsoft Corporati C:\Program Files\Wi
                                        on                  ndows PowerShell\v1
                                                            .0\powershell.exe

Wrap 매개 변수를 단독으로 사용하면 프로세스 속도가 크게 느려지지 않는다는 이점이 있습니다.An advantage of using the Wrap parameter by itself is that it does not slow down processing very much. 큰 디렉터리 시스템의 파일을 반복해서 표시할 때 AutoSize를 사용하면 첫 번째 출력 항목을 표시할 때까지 매우 많은 시간이 걸리고 많은 메모리가 사용될 수 있습니다.If you perform a recursive file listing of a large directory system, it might take a very long time and use a lot of memory before displaying the first output items if you use AutoSize.

시스템 로드에 신경 쓰지 않아도 되는 경우에는 AutoSizeWrap 매개 변수와 함께 잘 작동합니다.If you are not concerned about system load, then AutoSize works well with the Wrap parameter. Wrap 매개 변수 없이 AutoSize를 지정한 경우와 같이 초기 열에는 항상 하나의 줄에 항목을 표시하는 데 필요한 충분한 너비가 할당됩니다.The initial columns are always allotted as much width as they need to display items on one line, just as when you specify AutoSize without the Wrap parameter. 유일한 차이점은 다음과 같이 마지막 열이 필요에 따라 래핑된다는 것입니다.The only difference is that the final column will be wrapped if necessary:

PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,I
d,Company,Path

Name         Id Company               Path
----         -- -------               ----
powershell 2836 Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\
                                      powershell.exe

가장 긴 열을 가장 먼저 지정하면 일부 열이 표시되지 않을 수 있으므로 가장 작은 데이터 요소를 가장 먼저 지정하는 것이 안전합니다.Some columns might not be displayed if you specify the widest columns first, so it is safest to specify the smallest data elements first. 다음 예제에서는 매우 긴 경로 요소를 가장 먼저 지정했기 때문에 래핑을 사용했지만 최종 Name 열이 여전히 표시되지 않습니다.In the following example, we specify the extremely wide path element first, and even with wrapping, we still lose the final Name column:

PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Path,I
d,Company,Name

WARNING: column "Name" does not fit into the display and was removed.

Path                                                      Id Company
----                                                      -- -------
C:\Program Files\Windows PowerShell\v1.0\powershell.exe 2836 Microsoft Corporat
                                                             ion

표 형식의 출력 구성(-GroupBy)Organizing Table Output (-GroupBy)

표 형식의 출력을 제어하는 데 사용할 수 있는 또 다른 유용한 매개 변수는 GroupBy입니다.Another useful parameter for tabular output control is GroupBy. 특히 긴 표 형식의 목록은 비교하기 어려울 수 있지만Longer tabular listings in particular may be hard to compare. GroupBy 매개 변수를 사용하면 속성 값을 기준으로 출력을 그룹화할 수 있습니다.The GroupBy parameter groups output based on a property value. 예를 들어 다음과 같이 프로세스를 더 쉽게 검사하기 위해 속성 목록에서 회사 값을 제거하여 해당 프로세스를 회사별로 그룹화할 수 있습니다.For example, we can group processes by company for easier inspection, omitting the company value from the property listing:

PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,I
d,Path -GroupBy Company

   Company: Microsoft Corporation

Name         Id Path
----         -- ----
powershell 1956 C:\Program Files\Windows PowerShell\v1.0\powershell.exe
powershell 2656 C:\Program Files\Windows PowerShell\v1.0\powershell.exe