Export-Csv

개체를 일련의 CSV(문자로 구분된 값) 문자열로 변환하고 문자열을 파일에 저장합니다.

Syntax

Export-Csv
      -InputObject <PSObject>
      [[-Path] <String>]
      [-LiteralPath <String>]
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-Append]
      [[-Delimiter] <Char>]
      [-IncludeTypeInformation]
      [-NoTypeInformation]
      [-QuoteFields <String[]>]
      [-UseQuotes <QuoteKind>]
      [-NoHeader]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Export-Csv
      -InputObject <PSObject>
      [[-Path] <String>]
      [-LiteralPath <String>]
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-Append]
      [-UseCulture]
      [-IncludeTypeInformation]
      [-NoTypeInformation]
      [-QuoteFields <String[]>]
      [-UseQuotes <QuoteKind>]
      [-NoHeader]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

cmdlet은 Export-CSV 제출하는 개체의 CSV 파일을 만듭니다. 각 개체는 개체의 속성 값에 대한 문자로 구분된 목록을 포함하는 행입니다. cmdlet을 Export-CSV 사용하여 스프레드시트를 만들고 CSV 파일을 입력으로 수락하는 프로그램과 데이터를 공유할 수 있습니다.

cmdlet으로 보내기 전에 개체의 서식을 Export-CSV 지정하지 마세요. Export-CSV 형식이 지정된 개체를 받으면 CSV 파일에는 개체 속성이 아닌 형식 속성이 포함됩니다. 선택한 개체 속성만 내보내려면 cmdlet을 Select-Object 사용합니다.

예제

예제 1: 프로세스 속성을 CSV 파일로 내보내기

다음은 특정 속성이 있는 프로세스 개체를 선택하고 개체를 CSV 파일로 내보내는 예제입니다.

Get-Process -Name WmiPrvSE |
    Select-Object -Property BasePriority,Id,SessionId,WorkingSet |
    Export-Csv -Path .\WmiData.csv -NoTypeInformation
Import-Csv -Path .\WmiData.csv

BasePriority Id    SessionId WorkingSet
------------ --    --------- ----------
8            976   0         20267008
8            2292  0         36786176
8            3816  0         30351360
8            8604  0         15011840
8            10008 0         8830976
8            11764 0         14237696
8            54632 0         9502720

cmdlet은 Get-Process Process 개체를 가져옵니다. Name 매개 변수는 출력을 필터링하여 WmiPrvSE 프로세스 개체만 포함합니다. 프로세스 개체는 파이프라인을 cmdlet으로 Select-Object 보냅니다. Select-ObjectProperty 매개 변수를 사용하여 프로세스 개체 속성의 하위 집합을 선택합니다. 프로세스 개체는 파이프라인을 cmdlet으로 Export-Csv 보냅니다. Export-Csv 는 프로세스 개체를 일련의 CSV 문자열로 변환합니다. Path 매개 변수는 파일이 현재 디렉터리에 저장되도록 지정 WmiData.csv 합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다. cmdlet은 Import-Csv Path 매개 변수를 사용하여 현재 디렉터리에 있는 파일을 표시합니다.

예제 2: 쉼표로 구분된 파일로 프로세스 내보내기

이 예제에서는 Process 개체를 가져오고 개체를 CSV 파일로 내보냅니다.

Get-Process | Export-Csv -Path .\Processes.csv -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...

cmdlet은 Get-Process Process 개체를 가져옵니다. 프로세스 개체는 파이프라인을 cmdlet으로 Export-Csv 보냅니다. Export-Csv 는 프로세스 개체를 일련의 CSV 문자열로 변환합니다. Path 매개 변수는 파일이 현재 디렉터리에 저장되도록 지정 Processes.csv 합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다. cmdlet은 Get-Content Path 매개 변수를 사용하여 현재 디렉터리에 있는 파일을 표시합니다.

예제 3: 세미콜론으로 구분된 파일로 프로세스 내보내기

이 예제에서는 Process 개체를 가져오고 세미콜론 구분 기호가 있는 파일로 개체를 내보냅니다.

Get-Process | Export-Csv -Path .\Processes.csv -Delimiter ';' -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...

cmdlet은 Get-Process Process 개체를 가져옵니다. 프로세스 개체는 파이프라인을 cmdlet으로 Export-Csv 보냅니다. Export-Csv 는 프로세스 개체를 일련의 CSV 문자열로 변환합니다. Path 매개 변수는 파일이 현재 디렉터리에 저장되도록 지정 Processes.csv 합니다. 구분 기호 매개 변수는 문자열 값을 구분하는 세미콜론을 지정합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다. cmdlet은 Get-Content Path 매개 변수를 사용하여 현재 디렉터리에 있는 파일을 표시합니다.

예제 4: 현재 문화권의 목록 구분 기호를 사용하여 프로세스 내보내기

이 예제에서는 Process 개체를 가져오고 개체를 파일로 내보냅니다. 구분 기호는 현재 문화권의 목록 구분 기호입니다.

(Get-Culture).TextInfo.ListSeparator
Get-Process | Export-Csv -Path .\Processes.csv -UseCulture -NoTypeInformation
Get-Content -Path .\Processes.csv

"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...

cmdlet은 Get-Culture TextInfo 및 ListSeparator첩 속성을 사용하고 현재 문화권의 기본 목록 구분 기호를 표시합니다. cmdlet은 Get-Process Process 개체를 가져옵니다. 프로세스 개체는 파이프라인을 cmdlet으로 Export-Csv 보냅니다. Export-Csv 는 프로세스 개체를 일련의 CSV 문자열로 변환합니다. Path 매개 변수는 파일이 현재 디렉터리에 저장되도록 지정 Processes.csv 합니다. UseCulture 매개 변수는 현재 문화권의 기본 목록 구분 기호를 구분 기호로 사용합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다. cmdlet은 Get-Content Path 매개 변수를 사용하여 현재 디렉터리에 있는 파일을 표시합니다.

예제 5: 형식 정보를 사용하여 프로세스 내보내기

이 예제에서는 CSV 파일에 #TYPE 헤더 정보를 포함하는 방법을 설명합니다. #TYPE 헤더는 PowerShell 6.0 이전 버전의 기본값입니다.

Get-Process | Export-Csv -Path .\Processes.csv -IncludeTypeInformation
Get-Content -Path .\Processes.csv

#TYPE System.Diagnostics.Process
"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","507","2203595001856","35139584","20934656","29504", ...

cmdlet은 Get-Process Process 개체를 가져옵니다. 프로세스 개체는 파이프라인을 cmdlet으로 Export-Csv 보냅니다. Export-Csv 는 프로세스 개체를 일련의 CSV 문자열로 변환합니다. Path 매개 변수는 파일이 현재 디렉터리에 저장되도록 지정 Processes.csv 합니다. IncludeTypeInformation에는 CSV 출력에 #TYPE 정보 헤더가 포함됩니다. cmdlet은 Get-Content Path 매개 변수를 사용하여 현재 디렉터리에 있는 파일을 표시합니다.

예제 6: CSV 파일에 개체 내보내기 및 추가

이 예제에서는 CSV 파일로 개체를 내보내고 Append 매개 변수를 사용하여 기존 파일에 개체를 추가하는 방법을 설명합니다.

$AppService = (Get-Service -DisplayName *Application* | Select-Object -Property DisplayName, Status)
$AppService | Export-Csv -Path .\Services.Csv -NoTypeInformation
Get-Content -Path .\Services.Csv
$WinService = (Get-Service -DisplayName *Windows* | Select-Object -Property DisplayName, Status)
$WinService | Export-Csv -Path .\Services.csv -NoTypeInformation -Append
Get-Content -Path .\Services.Csv

"DisplayName","Status"
"Application Layer Gateway Service","Stopped"
"Application Identity","Running"
"Windows Audio Endpoint Builder","Running"
"Windows Audio","Running"
"Windows Event Log","Running"

cmdlet은 Get-Service 서비스 개체를 가져옵니다. DisplayName 매개 변수는 Application이라는 단어가 포함된 서비스를 반환합니다. 서비스 개체는 파이프라인을 cmdlet으로 Select-Object 보냅니다. Select-Object에서는 Property 매개 변수를 사용하여 DisplayNameStatus 속성을 지정합니다. 변수는 $AppService 개체를 저장합니다.

개체는 $AppService 파이프라인 아래로 cmdlet으로 Export-Csv 전송됩니다. Export-Csv 는 서비스 개체를 일련의 CSV 문자열로 변환합니다. Path 매개 변수는 파일이 현재 디렉터리에 저장되도록 지정 Services.csv 합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다. cmdlet은 Get-Content Path 매개 변수를 사용하여 현재 디렉터리에 있는 파일을 표시합니다.

Get-Service Windows라는 단어가 포함된 서비스에 대해 cmdlet 및 Select-Object cmdlet이 반복됩니다. 변수는 $WinService 서비스 개체를 저장합니다. cmdlet은 Export-Csv Append 매개 변수를 사용하여 개체가 $WinService 기존 파일에 추가되도록 지정합니다Services.csv. Get-Content cmdlet은 추가된 데이터를 포함하는 업데이트된 파일을 표시하기 위해 반복됩니다.

예제 7: 파이프라인 내에서 cmdlet 서식을 지정하면 예기치 않은 결과가 발생합니다.

이 예제에서는 파이프라인 내에서 형식 cmdlet을 사용하지 않는 것이 중요한 이유를 보여줍니다. 예기치 않은 출력이 수신되면 파이프라인 구문 문제를 해결합니다.

Get-Date | Select-Object -Property DateTime, Day, DayOfWeek, DayOfYear |
 Export-Csv -Path .\DateTime.csv -NoTypeInformation
Get-Content -Path .\DateTime.csv

"DateTime","Day","DayOfWeek","DayOfYear"
"Wednesday, January 2, 2019 14:59:34","2","Wednesday","2"

Get-Date | Format-Table -Property DateTime, Day, DayOfWeek, DayOfYear |
 Export-Csv -Path .\FTDateTime.csv -NoTypeInformation
Get-Content -Path .\FTDateTime.csv

"ClassId2e4f51ef21dd47e99d3c952918aff9cd","pageHeaderEntry","pageFooterEntry","autosizeInfo", ...
"033ecb2bc07a4d43b5ef94ed5a35d280",,,,"Microsoft.PowerShell.Commands.Internal.Format. ...
"9e210fe47d09416682b841769c78b8a3",,,,,
"27c87ef9bbda4f709f6b4002fa4af63c",,,,,
"4ec4f0187cb04f4cb6973460dfe252df",,,,,
"cf522b78d86c486691226b40aa69e95c",,,,,

cmdlet은 Get-Date DateTime 개체를 가져옵니다. 개체가 파이프라인 아래로 cmdlet으로 Select-Object 전송됩니다. Select-Object는 속성 매개 변수를 사용하여 개체 속성의 하위 집합을 선택합니다. 개체가 파이프라인 아래로 cmdlet으로 Export-Csv 전송됩니다. Export-Csv 는 개체를 CSV 형식으로 변환합니다. Path 매개 변수는 파일이 현재 디렉터리에 저장되도록 지정 DateTime.csv 합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다. cmdlet은 Get-Content Path 매개 변수를 사용하여 현재 디렉터리에 있는 CSV 파일을 표시합니다.

Format-Table 파이프라인 내에서 cmdlet을 사용하여 속성을 선택하는 경우 예기치 않은 결과가 수신됩니다. Format-Table는 테이블 형식 개체를 파이프라인 Export-Csv 아래로 DateTime 개체가 아닌 cmdlet으로 보냅니다. Export-Csv 는 테이블 형식 개체를 일련의 CSV 문자열로 변환합니다. cmdlet은 Get-Content 테이블 형식 개체를 포함하는 CSV 파일을 표시합니다.

예제 8: Force 매개 변수를 사용하여 읽기 전용 파일 덮어쓰기

다음은 빈 읽기 전용 파일을 만들고 Force 매개 변수를 사용하여 파일을 업데이트하는 예제입니다.

New-Item -Path .\ReadOnly.csv -ItemType File
Set-ItemProperty -Path .\ReadOnly.csv -Name IsReadOnly -Value $true
Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation

Export-Csv : Access to the path 'C:\ReadOnly.csv' is denied.
At line:1 char:15
+ Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation
+               ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (:) [Export-Csv], UnauthorizedAccessException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ExportCsvCommand

Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation -Force
Get-Content -Path .\ReadOnly.csv

"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...

cmdlet은 New-Item PathItemType 매개 변수를 ReadOnly.csv 사용하여 현재 디렉터리에 파일을 만듭니다. cmdlet은 Name 및 Value 매개 변수를 사용하여 파일의 IsReadOnly 속성을 true로 변경합니다.Set-ItemProperty cmdlet은 Get-Process Process 개체를 가져옵니다. 프로세스 개체는 파이프라인을 cmdlet으로 Export-Csv 보냅니다. Export-Csv 는 프로세스 개체를 일련의 CSV 문자열로 변환합니다. Path 매개 변수는 파일이 현재 디렉터리에 저장되도록 지정 ReadOnly.csv 합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다. 출력은 액세스가 거부되어 파일이 기록되지 않음을 보여줍니다.

Force 매개 변수는 내보내기가 Export-Csv 파일에 쓰도록 강제하기 위해 cmdlet에 추가됩니다. cmdlet은 Get-Content Path 매개 변수를 사용하여 현재 디렉터리에 있는 파일을 표시합니다.

예제 9: 추가와 함께 Force 매개 변수 사용

이 예제에서는 Force 및 Append 매개 변수를 사용하는 방법을 보여 줍니다. 이러한 매개 변수를 결합하면 일치하지 않는 개체 속성을 CSV 파일에 쓸 수 있습니다.

$Content = [PSCustomObject]@{Name = 'PowerShell'; Version = '7.0'}
$Content | Export-Csv -Path .\ParmFile.csv -NoTypeInformation
$AdditionalContent = [PSCustomObject]@{Name = 'Windows PowerShell'; Edition = 'Desktop'}
$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append

Export-Csv : Cannot append CSV content to the following file: ParmFile.csv.
The appended object does not have a property that corresponds to the following column:
Version. To continue with mismatched properties, add the -Force parameter, and then retry
 the command.
At line:1 char:22
+ $AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidData: (Version:String) [Export-Csv], InvalidOperationException
+ FullyQualifiedErrorId : CannotAppendCsvWithMismatchedPropertyNames,Microsoft.PowerShell. ...

$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append -Force
Import-Csv -Path .\ParmFile.csv

Name               Version
----               -------
PowerShell         7.0
Windows PowerShell

식은 이름 및 버전 속성을 사용하여 PSCustomObject만듭니다. 값은 변수에 $Content 저장됩니다. 변수가 $Content 파이프라인 아래로 cmdlet으로 Export-Csv 전송됩니다. Export-CsvPath 매개 변수를 ParmFile.csv 사용하고 현재 디렉터리에 파일을 저장합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다.

또 다른 식은 NameEdition 속성을 사용하여 PSCustomObject만듭니다. 값은 변수에 $AdditionalContent 저장됩니다. 변수가 $AdditionalContent 파이프라인 아래로 cmdlet으로 Export-Csv 전송됩니다. Append 매개 변수는 파일에 데이터를 추가하는 데 사용됩니다. VersionEdition 간에 속성 이름이 일치하지 않으므로 추가가 실패합니다.

Export-Csv cmdlet Force 매개 변수는 내보내기가 파일에 쓰도록 강제하는 데 사용됩니다. Edition 속성이 dis카드ed입니다. cmdlet은 Import-Csv Path 매개 변수를 사용하여 현재 디렉터리에 있는 파일을 표시합니다.

예제 10: 두 열 주위에 따옴표가 있는 CSV로 내보내기

다음은 DateTime 개체를 CSV 문자열로 변환하는 예제입니다.

Get-Date | Export-Csv  -QuoteFields "DateTime","Date" -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv

DisplayHint,"DateTime","Date",Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:27:34 AM","8/22/2019 12:00:00 AM",22,Thursday,234,11,Local,569,27,8,34,637020700545699784,11:27:34.5699784,2019

예제 11: 필요한 경우에만 따옴표를 사용하여 CSV로 내보내기

다음은 DateTime 개체를 CSV 문자열로 변환하는 예제입니다.

Get-Date | Export-Csv  -UseQuotes AsNeeded -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv

DisplayHint,DateTime,Date,Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:31:00 AM",8/22/2019 12:00:00 AM,22,Thursday,234,11,Local,713,31,8,0,637020702607132640,11:31:00.7132640,2019

예제 12: 해시 테이블을 CSV로 변환

PowerShell 7.2 이상에서 해시 테이블을 CSV로 내보내면 첫 번째 해시 테이블의 키가 직렬화되고 csv 파일 출력의 헤더로 사용됩니다.

$person1 = @{
    Name = 'John Smith'
    Number = 1
}

$person2 = @{
    Name = 'Jane Smith'
    Number = 1
}

$allPeople = $person1, $person2
$allPeople | Export-Csv -Path .\People.csv

Get-Content -Path .\People.csv

"Name","Number"
"John Smith","1"
"Jane Smith","2"

예제 13: 추가 속성을 사용하여 해시 테이블을 CSV로 변환

PowerShell 7.2 이상에서는 추가 속성이 추가 Add-Member 된 해시 테이블을 내보낼 때 또는 Select-Object 추가 속성도 CSV 파일의 헤더로 추가됩니다.

$allPeople | Add-Member -Name ExtraProp -Value 42 -MemberType NoteProperty
$allPeople | Export-Csv -Path .\People.csv

Get-Content -Path .\People.csv

"Name","Number","ExtraProp"
"John Smith","1","42"
"Jane Smith","2","42"

각 해시 테이블은 추가한 다음 CSV로 Add-Member 내보낸 속성 ExtraProp 이 있습니다. 이제 CSV 파일 출력의 헤더를 볼 ExtraProp 수 있습니다.

추가된 속성의 이름이 해시 테이블의 키와 동일한 경우 키가 우선하며 키만 CSV로 내보냅니다.

매개 변수

-Append

지정된 파일의 끝에 CSV 출력을 추가하도록 Export-CSV 이 매개 변수를 사용합니다. 이 매개 변수 Export-CSV 가 없으면 파일 내용을 경고 없이 바꿉니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Delimiter

속성 값을 구분할 구분 기호를 지정합니다. 기본값은 쉼표(,)입니다. 콜론(:)과 같은 문자를 입력합니다. 세미콜론(;)을 지정하려면 따옴표로 묶습니다.

Type:Char
Position:1
Default value:comma (,)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

내보낸 CSV 파일의 인코딩을 지정합니다. 기본값은 utf8NoBOM입니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • ascii: ASCII(7비트) 문자 집합의 인코딩을 사용합니다.
  • ansi: 현재 문화권의 ANSI 코드 페이지에 대한 인코딩을 사용합니다. 이 옵션이 추가되었습니다.
  • bigendianunicode: big-endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.
  • bigendianutf32: big-endian 바이트 순서를 사용하여 UTF-32 형식으로 인코딩합니다.
  • oem: MS-DOS 및 콘솔 프로그램에 대한 기본 인코딩을 사용합니다.
  • unicode: little-endian 바이트 순서를 사용하여 UTF-16 형식으로 인코딩합니다.
  • utf7: UTF-7 형식으로 인코딩합니다.
  • utf8: UTF-8 형식으로 인코딩합니다.
  • utf8BOM: BOM(바이트 순서 표시)을 사용하여 UTF-8 형식으로 인코딩
  • utf8NoBOM: BOM(바이트 순서 표시)이 없는 UTF-8 형식으로 인코딩
  • utf32: UTF-32 형식으로 인코딩합니다.

PowerShell 6.2부터 인코딩 매개 변수는 등록된 코드 페이지(예: ) 또는 등록된 코드 페이지의 문자열 이름(예: -Encoding 1251-Encoding "windows-1251")의 숫자 ID도 허용합니다. 자세한 내용은 Encoding.CodePage에 대한 .NET 설명서를 참조하세요.

PowerShell 7.4부터 인코딩 매개 변수 값을 사용하여 Ansi 수동으로 지정하지 않고도 현재 문화권의 ANSI 코드 페이지에 대한 숫자 ID를 전달할 수 있습니다.

참고 항목

UTF-7*은 더 이상 사용하지 않는 것이 좋습니다. PowerShell 7.1을 기준으로 인코딩 매개 변수를 지정 utf7 하면 경고가 기록됩니다.

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

이 매개 변수를 Export-Csv 사용하면 읽기 전용 특성으로 파일을 덮어쓸 수 있습니다.

ForceAppend 매개 변수를 결합하면 일치하지 않는 속성이 포함된 개체를 CSV 파일에 쓸 수 있습니다. 일치하는 속성만 파일에 기록됩니다. 일치하지 않는 속성은 dis카드ed입니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IncludeTypeInformation

이 매개 변수를 사용하는 경우 CSV 출력의 첫 번째 줄 다음에 개체 형식의 정규화된 이름이 포함됩니다 #TYPE . 예들 들어 #TYPE System.Diagnostics.Process입니다.

이 매개 변수는 PowerShell 6.0에서 도입되었습니다.

Type:SwitchParameter
Aliases:ITI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

CSV 문자열로 내보낼 개체를 지정합니다. 개체를 포함하는 변수를 입력하거나 개체를 가져오는 명령이나 식을 입력합니다. 개체를 으로 파이프할 Export-CSV수도 있습니다.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

CSV 출력 파일의 경로를 지정합니다. Path와 달리 LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 어떤 문자도 야생으로 해석되지 카드. 경로에 이스케이프 문자가 포함된 경우 작은따옴표를 사용합니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

기존 파일을 덮어쓰지 않도록 Export-CSV 이 매개 변수를 사용합니다. 기본적으로 지정된 경로 Export-CSV 에 파일이 있는 경우 경고 없이 파일을 덮어씁니다.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoHeader

이 매개 변수를 사용하면 cmdlet은 열 이름이 포함된 머리글 행을 출력에 쓰지 않습니다.

이 매개 변수는 PowerShell 7.4에 추가되었습니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoTypeInformation

출력에서 #TYPE 정보 헤더를 제거합니다. 이 매개 변수는 PowerShell 6.0의 기본값이 되었으며 이전 버전과의 호환성을 위해 포함됩니다.

Type:SwitchParameter
Aliases:NTI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

CSV 출력 파일을 저장할 위치를 지정하는 필수 매개 변수입니다.

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-QuoteFields

따옴표로 묶어야 하는 열의 이름을 지정합니다. 이 매개 변수를 사용하면 지정된 열만 따옴표로 묶습니다. 이 매개 변수는 PowerShell 7.0에 추가되었습니다.

Type:String[]
Aliases:QF
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseCulture

현재 문화권의 목록 구분 기호를 항목 구분 기호로 사용합니다. 문화권의 목록 구분 기호를 찾으려면 다음 명령을 (Get-Culture).TextInfo.ListSeparator사용합니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseQuotes

CSV 파일에서 따옴표가 사용되는 시기를 지정합니다. 가능한 값은 다음과 같습니다.

  • 절대 - 아무 것도 인용하지 마세요.
  • 항상 - 모든 항목 인용(기본 동작)
  • AsNeeded - 구분 기호 문자, 큰따옴표 또는 줄 바꿈 문자가 포함된 따옴표 필드만

이 매개 변수는 PowerShell 7.0에 추가되었습니다.

Type:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Aliases:UQ
Position:Named
Default value:Always
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

cmdlet이 처리되거나 변경되지 않도록 합니다. 출력은 cmdlet이 실행된 경우 어떤 일이 발생하는지 보여줍니다.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

PSObject

ETS(확장 형식 시스템) 어댑터를 사용하여 모든 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 반환하지 않습니다.

참고

PowerShell에는 다음 별칭이 포함됩니다.Export-Csv

  • 모든 플랫폼:
    • epcsv

cmdlet은 Export-CSV 제출하는 개체를 일련의 CSV 문자열로 변환하고 지정된 텍스트 파일에 저장합니다. CSV 파일에 개체를 저장한 다음 cmdlet을 Import-Csv 사용하여 CSV 파일의 텍스트에서 개체를 만들 수 Export-CSV -IncludeTypeInformation 있습니다.

CSV 파일에서 각 개체는 개체의 속성 값에 대해 문자로 구분된 목록으로 표시됩니다. 속성 값은 ToString() 메서드를 사용하여 문자열로 변환됩니다. 문자열은 속성 값 이름으로 표시됩니다. Export-CSV -IncludeTypeInformation 는 개체의 메서드를 내보내지 않습니다.

CSV 문자열은 다음과 같이 출력됩니다.

  • IncludeTypeInformation을 사용하는 경우 첫 번째 문자열에는 개체 형식의 정규화된 이름 뒤에 #TYPE 정보 헤더가 포함됩니다. 예를 들어 system.Diagnostics.Process를 #TYPE.
  • IncludeTypeInformation을 사용하지 않는 경우 첫 번째 문자열에는 열 머리글이 포함됩니다. 머리글에는 첫 번째 개체의 속성 이름이 문자로 구분된 목록으로 포함됩니다.
  • 다시 기본 문자열에는 각 개체의 속성 값에 대한 문자로 구분된 목록이 포함됩니다.

PowerShell 6.0부터 기본 동작 Export-CSV 은 CSV에 #TYPE 정보를 포함하지 않는 것이며 NoTypeInformation은 암시됩니다. IncludeTypeInformation을 사용하여 #TYPE 정보를 포함하고 PowerShell 6.0 이전의 Export-CSV 기본 동작을 에뮬레이트할 수 있습니다.

여러 개체를 Export-CSVExport-CSV 제출할 때 제출하는 첫 번째 개체의 속성에 따라 파일을 구성합니다. 다시 기본 개체에 지정된 속성 중 하나가 없으면 두 개의 연속된 쉼표로 표시된 대로 해당 개체의 속성 값이 null입니다. 다시 기본 개체에 추가 속성이 있는 경우 해당 속성 값은 파일에 포함되지 않습니다.

cmdlet을 사용하여 파일의 Import-Csv CSV 문자열에서 개체를 다시 만들 수 있습니다. 결과 개체는 속성 값의 문자열 표현과 메서드 없이 구성된 원래 개체의 CSV 버전입니다.

ConvertFrom-Csv cmdlet은 ConvertTo-Csv 개체를 CSV 문자열 및 CSV 문자열로 변환합니다. Export-CSV 는 CSV 문자열을 파일에 저장한다는 점을 제외하고와 ConvertTo-CSV동일합니다.