다음을 통해 공유


ConvertTo-CSV

Microsoft .NET Framework 개체를 일련의 CSV(쉼표로 구분된 값) 가변 길이 문자열로 변환합니다.

구문

ConvertTo-CSV [[-Delimiter] <char>] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>]

ConvertTo-CSV [-UseCulture] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>]

설명

ConvertTo-CSV cmdlet은 전송한 개체를 나타내는 일련의 쉼표로 구분된 가변 길이(CSV) 문자열을 반환합니다. 그러면 ConvertFrom-CSV cmdlet을 사용하여 CSV 문자열에서 개체를 다시 만들 수 있습니다. 결과 개체는 속성 값(메서드는 포함 안 됨)의 문자열 표시로 이루어진 원래 개체의 CSV 버전입니다.

또한 Export-CSV 및 Import-CSV cmdlet을 사용하여 .NET Framework 개체를 CSV 문자열로 변환하거나 그 반대로 변환할 수 있습니다. Export-CSV는 CSV 문자열을 파일에 저장한다는 점을 제외하면 ConvertTo-CSV와 동일합니다.

ConvertTo-CSV cmdlet의 매개 변수를 사용하여 쉼표 이외의 구분 기호를 지정하거나 현재 culture의 기본 구분 기호를 사용하도록 ConvertTo-CSV에 지시할 수 있습니다.

자세한 내용은 Export-CSV의 참고 섹션을 참조하십시오.

매개 변수

-Delimiter <char>

속성 값을 구분하는 구분 기호를 지정합니다. 기본값은 쉼표(,)입니다. 콜론(:)과 같은 문자를 입력합니다.

세미콜론(;)을 지정하려면 따옴표로 묶어야 합니다. 그렇지 않으면 명령 구분 기호로 해석됩니다.

필수 여부

false

위치

2

기본값

,(쉼표)

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-InputObject <psobject>

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

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByValue, ByPropertyName)

와일드카드 문자 적용 여부

false

-NoTypeInformation

출력에서 유형 정보 머리글을 생략합니다. 기본적으로 출력의 문자열에는 "#TYPE "과 .NET Framework 개체 유형의 정규화된 이름이 차례로 포함됩니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-UseCulture

현재 culture의 목록 구분 기호를 데이터 구분 기호로 사용합니다. 기본값은 쉼표(,)입니다.

이 매개 변수는 전 세계 사용자에게 배포되는 스크립트에서 유용할 수 있습니다. culture에 대한 목록 구분 기호를 찾으려면 (Get-Culture).TextInfo.ListSeparator 명령을 사용합니다.

필수 여부

false

위치

named

기본값

쉼표

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

System.Management.Automation.PSObject

임의의 .NET Framework 개체를 ConvertTo-CSV로 파이프할 수 있습니다.

출력

System.String

CSV 출력은 문자열 컬렉션으로 반환됩니다.

참고

CSV 형식에서 각 개체는 해당 속성 값을 쉼표로 구분한 목록으로 표시됩니다. 속성 값은 개체의 ToString() 메서드를 통해 문자열로 변환되므로 일반적으로 속성 값 이름으로 표시됩니다. ConvertTo-CSV는 개체의 메서드를 내보내지 않습니다.

결과 CSV 문자열의 형식은 다음과 같습니다.

-- 첫 번째 문자열은 '#TYPE '이라는 문자열과 개체의 .NET Framework 유형의 정규화된 이름으로 구성됩니다(예: #TYPE System.Diagnostics.Process). 이 문자열을 표시하지 않으려면 NoTypeInformation 매개 변수를 사용합니다.

-- 다음 문자열은 열 머리글을 나타냅니다. 여기에는 첫 번째 개체의 모든 속성 이름을 쉼표로 구분한 목록이 포함됩니다.

-- 나머지 문자열은 각 개체의 속성 값을 쉼표로 구분한 목록으로 구성됩니다.

여러 개체를 ConvertTo-CSV로 전송하면 ConvertTo-CSV는 전송한 첫 번째 개체의 속성을 기준으로 문자열을 정렬합니다. 나머지 개체에 지정된 속성이 하나도 없으면 해당 개체의 속성 값은 두 개의 연속된 쉼표로 표시되는 null입니다. 나머지 개체에 추가 속성이 있으면 이러한 속성 값은 무시됩니다.

예 1

C:\PS>get-process powershell | convertto-csv

#TYPE System.Diagnostics.Process
"__NounName","Name","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion","ProductVersion","Description",
"Product","BasePriority","ExitCode","HasExited","ExitTime","Handle","HandleCount","Id","MachineName","MainWindowHandle"
,"MainWindowTitle","MainModule","MaxWorkingSet","MinWorkingSet","Modules","NonpagedSystemMemorySize","NonpagedSystemMem
orySize64","PagedMemorySize","PagedMemorySize64","PagedSystemMemorySize","PagedSystemMemorySize64","PeakPagedMemorySize
","PeakPagedMemorySize64","PeakWorkingSet","PeakWorkingSet64","PeakVirtualMemorySize","PeakVirtualMemorySize64","Priori
tyBoostEnabled","PriorityClass","PrivateMemorySize","PrivateMemorySize64","PrivilegedProcessorTime","ProcessName","Proc
essorAffinity","Responding","SessionId","StartInfo","StartTime","SynchronizingObject","Threads","TotalProcessorTime","U
serProcessorTime","VirtualMemorySize","VirtualMemorySize64","EnableRaisingEvents","StandardInput","StandardOutput","Sta
ndardError","WorkingSet","WorkingSet64","Site","Container"
"Process","powershell","216","597544960","60399616","63197184","21692","C:\WINDOWS\system32\WindowsPowerShell\v1.0\powe
rshell.exe","Microsoft Corporation","3.4788223","6.1.6587.1 (fbl_srv_powershell(nigels).070711-0102)","6.1.6587.1","Win
dows PowerShell","Microsoft® Windows® Operating System","8",,"False",,"860","216","5132",".","5636936","Windows PowerSh
ell 2.0 (04/17/2008 00:10:40)","System.Diagnostics.ProcessModule (powershell.exe)","1413120","204800","System.Diagnosti
cs.ProcessModuleCollection","21692","21692","63197184","63197184","320080","320080","63868928","63868928","60715008","6
0715008","598642688","598642688","True","Normal","63197184","63197184","00:00:00.2028013","powershell","15","True","1",
"System.Diagnostics.ProcessStartInfo","4/21/2008 3:49:19 PM",,"System.Diagnostics.ProcessThreadCollection","00:00:03.51
00225","00:00:03.3072212","597544960","597544960","False",,,,"60399616","60399616",,

설명
-----------
이 명령은 단일 프로세스 개체를 CSV 형식으로 변환합니다. 이 명령은 Get-Process cmdlet을 사용하여 로컬 컴퓨터의 PowerShell 프로세스를 가져옵니다. 파이프라인 연산자(|)를 사용하여 명령을 ConvertTo-CSV cmdlet으로 보내면 이 cmdlet은 해당 명령을 쉼표로 구분된 일련의 문자열로 변환합니다.





예 2

C:\PS>$date = get-date

C:\PS> convertto-csv -inputobject $date -delimiter ";" -notypeinformation

설명
-----------
이 예에서는 날짜 개체를 CSV 형식으로 변환합니다. 

첫 번째 명령은 Get-Date cmdlet을 사용하여 현재 날짜를 가져온 다음 $date 변수에 저장합니다. 

두 번째 명령은 ConvertTo-CSV cmdlet을 사용하여 $date 변수에 있는 DateTime 개체를 CSV 형식으로 변환합니다. 이 명령은 InputObject 매개 변수를 사용하여 변환할 개체를 지정하고 Delimiter 매개 변수를 사용하여 개체 속성을 구분하는 구분 기호를 지정합니다. 이 명령은 NoTypeInformation 매개 변수를 사용하여 #TYPE 문자열을 표시하지 않도록 지시합니다.





예 3

C:\PS>get-eventlog -log "windows powershell" | convertto-csv -useculture

설명
-----------
이 명령은 로컬 컴퓨터의 Windows PowerShell 이벤트 로그를 일련의 CSV 문자열로 변환합니다. 

이 명령은 Get-EventLog cmdlet을 사용하여 Windows PowerShell 로그의 이벤트를 가져옵니다. 파이프라인 연산자(|)가 이벤트를 ConvertTo-CSV cmdlet으로 보내면 이 cmdlet은 해당 이벤트를 CSV 형식으로 변환합니다. 이 명령은 UseCulture 매개 변수를 사용하여 현재 culture에 대한 목록 구분 기호를 구분 기호로 사용하도록 지정합니다.





참고 항목

개념

Import-CSV
Export-CSV
ConvertFrom-CSV