Export-Csv
개체를 일련의 CSV(문자로 구분된 값) 문자열로 변환하고 문자열을 파일에 저장합니다.
구문
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-Object
는 Property 매개 변수를 사용하여 프로세스 개체 속성의 하위 집합을 선택합니다. 프로세스 개체는 파이프라인을 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 매개 변수를 사용하여 DisplayName 및 Status 속성을 지정합니다. 변수는 $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
Path 및 ItemType 매개 변수를 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-Csv
는 Path 매개 변수를 ParmFile.csv
사용하고 현재 디렉터리에 파일을 저장합니다. NoTypeInformation 매개 변수는 CSV 출력에서 #TYPE 정보 헤더를 제거하며 PowerShell 6에는 필요하지 않습니다.
또 다른 식은 Name 및 Edition 속성을 사용하여 PSCustomObject를 만듭니다. 값은 변수에 $AdditionalContent
저장됩니다. 변수가 $AdditionalContent
파이프라인 아래로 cmdlet으로 Export-Csv
전송됩니다. Append 매개 변수는 파일에 데이터를 추가하는 데 사용됩니다. Version과 Edition 간에 속성 이름이 일치하지 않으므로 추가가 실패합니다.
Export-Csv
cmdlet Force 매개 변수는 내보내기가 파일에 쓰도록 강제하는 데 사용됩니다. Edition 속성이 삭제됩니다. 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에서 도입되었습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Delimiter
속성 값을 구분할 구분 기호를 지정합니다. 기본값은 쉼표(,
)입니다. 콜론(:
)과 같은 문자를 입력합니다. 세미콜론(;
)을 지정하려면 따옴표로 묶습니다.
형식: | Char |
Position: | 1 |
Default value: | comma (,) |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | 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
하면 경고가 기록됩니다.
형식: | Encoding |
허용되는 값: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Force
이 매개 변수를 Export-Csv
사용하면 읽기 전용 특성으로 파일을 덮어쓸 수 있습니다.
Force 및 Append 매개 변수를 결합하면 일치하지 않는 속성이 포함된 개체를 CSV 파일에 쓸 수 있습니다. 일치하는 속성만 파일에 기록됩니다. 일치하지 않는 속성은 삭제됩니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-IncludeTypeInformation
이 매개 변수를 사용하는 경우 CSV 출력의 첫 번째 줄 다음에 개체 형식의 정규화된 이름이 포함됩니다 #TYPE
. 예들 들어 #TYPE System.Diagnostics.Process
입니다.
이 매개 변수는 PowerShell 6.0에서 도입되었습니다.
형식: | SwitchParameter |
별칭: | ITI |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InputObject
CSV 문자열로 내보낼 개체를 지정합니다. 개체를 포함하는 변수를 입력하거나 개체를 가져오는 명령이나 식을 입력합니다. 개체를 으로 파이프할 Export-CSV
수도 있습니다.
형식: | PSObject |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-LiteralPath
CSV 출력 파일의 경로를 지정합니다. Path와 달리 LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표를 사용합니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.
형식: | String |
별칭: | PSPath, LP |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-NoClobber
기존 파일을 덮어쓰지 않도록 Export-CSV
이 매개 변수를 사용합니다. 기본적으로 지정된 경로 Export-CSV
에 파일이 있는 경우 경고 없이 파일을 덮어씁니다.
형식: | SwitchParameter |
별칭: | NoOverwrite |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-NoHeader
이 매개 변수를 사용하면 cmdlet은 열 이름이 포함된 머리글 행을 출력에 쓰지 않습니다.
이 매개 변수는 PowerShell 7.4에 추가되었습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-NoTypeInformation
출력에서 #TYPE
정보 헤더를 제거합니다. 이 매개 변수는 PowerShell 6.0의 기본값이 되었으며 이전 버전과의 호환성을 위해 포함됩니다.
형식: | SwitchParameter |
별칭: | NTI |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Path
CSV 출력 파일을 저장할 위치를 지정하는 필수 매개 변수입니다.
형식: | String |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-QuoteFields
따옴표로 묶어야 하는 열의 이름을 지정합니다. 이 매개 변수를 사용하면 지정된 열만 따옴표로 묶습니다. 이 매개 변수는 PowerShell 7.0에 추가되었습니다.
형식: | String[] |
별칭: | QF |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-UseCulture
현재 문화권의 목록 구분 기호를 항목 구분 기호로 사용합니다. 문화권의 목록 구분 기호를 찾으려면 다음 명령을 (Get-Culture).TextInfo.ListSeparator
사용합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-UseQuotes
CSV 파일에서 따옴표가 사용되는 시기를 지정합니다. 가능한 값은 다음과 같습니다.
- 절대 - 아무 것도 인용하지 마세요.
- 항상 - 모든 항목 인용(기본 동작)
- AsNeeded - 구분 기호 문자, 큰따옴표 또는 줄 바꿈 문자가 포함된 따옴표 필드만
이 매개 변수는 PowerShell 7.0에 추가되었습니다.
형식: | Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind |
별칭: | UQ |
Position: | Named |
Default value: | Always |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 처리되거나 변경되지 않도록 합니다. 출력은 cmdlet이 실행된 경우 어떤 일이 발생하는지 보여줍니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
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-CSV
Export-CSV
제출할 때 제출하는 첫 번째 개체의 속성에 따라 파일을 구성합니다. 나머지 개체에 지정된 속성 중 하나가 없으면 두 개의 연속된 쉼표로 표시된 대로 해당 개체의 속성 값이 null입니다. 나머지 개체에 추가 속성이 있는 경우 해당 속성 값은 파일에 포함되지 않습니다.
cmdlet을 사용하여 파일의 Import-Csv
CSV 문자열에서 개체를 다시 만들 수 있습니다. 결과 개체는 속성 값의 문자열 표현과 메서드 없이 구성된 원래 개체의 CSV 버전입니다.
및 ConvertFrom-Csv
cmdlet은 ConvertTo-Csv
개체를 CSV 문자열 및 CSV 문자열로 변환합니다. Export-CSV
는 CSV 문자열을 파일에 저장한다는 점을 제외하고와 ConvertTo-CSV
동일합니다.
관련 링크
PowerShell