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에 대한 목록 구분 기호를 구분 기호로 사용하도록 지정합니다.