ConvertFrom-CSV
CSV(쉼표로 구분된 값) 형식의 개체 속성을 원래 개체의 CSV 버전으로 변환합니다.
구문
ConvertFrom-CSV [[-Delimiter] <char>] [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]
ConvertFrom-CSV -UseCulture [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>]
설명
ConvertFrom-CSV cmdlet은 ConvertTo-CSV cmdlet에서 생성하는 CSV 가변 길이 문자열에서 개체를 만듭니다.
ConvertFrom-CSV cmdlet의 매개 변수를 사용하여 결과 개체의 속성 이름을 결정하는 열 머리글 행을 지정하거나, 항목 구분 기호를 지정하거나, 현재 culture의 목록 구분 기호를 구분 기호로 사용하도록 ConvertFrom-CSV에 지시할 수 있습니다.
ConvertFrom-CSV가 만드는 개체는 원래 개체의 CSV 버전입니다. CSV 개체의 속성 값은 원래 개체 속성 값의 문자열 버전입니다. 개체의 CSV 버전에는 메서드가 없습니다.
Export-CSV 및 Import-CSV cmdlet을 사용하여 개체를 파일의 CSV 문자열로 변환하거나 그 반대로 변환할 수도 있습니다. 이 두 cmdlet은 CSV 문자열을 파일에 저장한다는 점을 제외하면 ConvertTo-CSV 및 ConvertFrom-CSV cmdlet과 같습니다.
매개 변수
-Delimiter <char>
CSV 문자열의 속성 값을 구분하는 구분 기호를 지정합니다. 기본값은 쉼표(,)입니다. 콜론(:)과 같은 문자를 입력합니다. 세미콜론(;)을 지정하려면 따옴표로 묶어야 합니다.
CSV 문자열에 사용되는 구분 기호 이외의 문자를 지정하는 경우 ConvertFrom-CSV는 CSV 문자열에서 개체를 만들 수 없습니다. 대신 이 cmdlet은 문자열을 반환합니다.
필수 여부 |
false |
위치 |
2 |
기본값 |
',' |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Header <string[]>
가져온 문자열에 대해 대체 열 머리글 행을 지정합니다. 열 머리글은 ConvertFrom-CSV가 만드는 개체 속성의 이름을 결정합니다.
쉼표로 구분된 열 머리글 목록을 입력합니다. 각 항목을 작은따옴표 또는 큰따옴표로 묶습니다. 머리글 문자열을 따옴표로 묶지 마십시오. 열 수보다 적은 수의 열 머리글을 입력하면 나머지 열에 머리글이 표시되지 않습니다. 열 수보다 많은 수의 머리글을 입력하면 나머지 머리글은 무시됩니다.
Header 매개 변수를 사용할 때는 CSV 문자열에서 열 머리글 문자열을 생략하십시오. 이렇게 하지 않으면 ConvertFrom-CSV가 머리글 행에 있는 항목에서 개체를 추가로 만듭니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-InputObject <PSObject[]>
개체로 변환할 CSV 문자열을 지정합니다. CSV 문자열이 포함된 변수를 입력하거나 CSV 문자열을 가져오는 명령 또는 식을 입력하십시오. CSV 문자열을 ConvertFrom-CSV로 파이프할 수도 있습니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue, ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-UseCulture
현재 culture의 목록 구분 기호를 문자열 구분 기호로 사용합니다. 기본값은 쉼표(,)입니다.
culture에 대한 목록 구분 기호를 찾으려면 (Get-Culture).TextInfo.ListSeparator 명령을 사용합니다. CSV 문자열에 사용되는 구분 기호 이외의 문자를 지정하는 경우 ConvertFrom-CSV는 CSV 문자열에서 개체를 만들 수 없습니다. 대신 이 cmdlet은 문자열을 반환합니다.
필수 여부 |
true |
위치 |
named |
기본값 |
쉼표 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.String CSV 문자열을 ConvertFrom-CSV로 파이프할 수 있습니다. |
출력 |
System.Management.Automation.PSObject ConvertFrom-CSV는 CSV 문자열의 속성이 설명하는 개체를 반환합니다. |
참고
가져온 개체는 개체 유형의 CSV 버전이므로 CSV가 아닌 개체 유형 버전 형식을 지정하는 Windows PowerShell 유형 형식 지정 항목을 통해 인식되지 않으며 형식이 지정되지도 않습니다.
CSV 형식에서 각 개체는 개체 속성 값을 쉼표로 구분한 목록으로 표현됩니다. 속성 값은 개체의 ToString() 메서드를 통해 문자열로 변환되므로 일반적으로 속성 값 이름으로 표시됩니다. ConvertTo-Csv는 개체의 메서드를 내보내지 않습니다.
예 1
C:\PS>$p = get-process | convertto-csv
C:\PS> $p | convertfrom-csv
설명
-----------
이들 명령은 로컬 컴퓨터의 프로세스를 CSV 형식으로 변환한 다음 개체 형식으로 복원합니다.
첫 번째 명령은 Get-Process cmdlet을 사용하여 로컬 컴퓨터의 프로세스를 가져옵니다. 파이프라인 연산자(|)가 이를 ConvertTo-CSV cmdlet으로 보내면 이 cmdlet은 프로세스 개체를 CSV 형식으로 변환합니다. CSV 문자열은 $p 변수에 저장됩니다.
두 번째 명령은 파이프라인 연산자를 사용하여 $p 변수에 있는 CSV 문자열을 ConvertFrom-CSV cmdlet으로 보냅니다. 이 cmdlet은 CSV 문자열을 원래 프로세스 개체의 CSV 버전으로 변환합니다.
예 2
C:\PS>$date = get-date | convertto-csv -delimiter ";"
C:\PS> convertfrom-csv -inputobject $date -delimiter ";"
설명
-----------
이들 명령은 데이터 개체를 CSV 형식으로 변환한 다음 CSV 개체 형식으로 변환합니다.
첫 번째 명령은 Get-Date cmdlet을 사용하여 현재 날짜 및 시간을 가져옵니다. 파이프라인 연산자(|)가 날짜를 ConvertTo-CSV cmdlet으로 보내면 이 cmdlet은 날짜 개체를 일련의 CSV 문자열로 변환합니다. 이 명령은 Delimiter 매개 변수를 사용하여 세미콜론 구분 기호를 지정합니다. 문자열은 $date 변수에 저장됩니다.
두 번째 명령은 ConvertFrom-CSV cmdlet을 사용하여 $date 변수에 있는 CSV 문자열을 다시 개체 형식으로 변환합니다. 이 명령은 InputObject 매개 변수를 사용하여 CSV 문자열을 지정하고 Delimiter 매개 변수를 사용하여 세미콜론 구분 기호를 지정합니다.
예 3
C:\PS>$j = start-job -scriptblock { get-process } | convertto-csv
C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Finished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progress","Verbose","Debug","Warning","StateChanged"
# Delete header from $j
C:\PS> $j = $j[0], $j[2..($j.count - 1)]
$j | convertfrom-csv -header $header
MoreData : True
StatusMessage :
Location : localhost
Command : get-process
State : Running
Finished : System.Threading.ManualResetEvent
InstanceId : 6fcb6578-7f42-4d93-9f23-9937f6aac1a2
SessionId : 1
Name : Job1
ChildJobs : System.Collections.Generic.List`1[System.Management.Automation.Job]
Output : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose : System.Management.Automation.PSDataCollection`1[System.String]
Debug : System.Management.Automation.PSDataCollection`1[System.String]
Warning : System.Management.Automation.PSDataCollection`1[System.String]
StateChanged :
설명
-----------
이 예에서는 ConvertFrom-Csv의 Header 매개 변수를 사용하여 가져온 결과 개체의 속성 이름을 변경하는 방법을 보여 줍니다.
첫 번째 명령은 Start-Job cmdlet을 사용하여 로컬 컴퓨터에서 Get-Process 명령을 실행하는 백그라운드 작업을 시작합니다. 파이프라인 연산자(|)가 ConvertTo-CSV cmdlet으로 결과 작업 개체를 보내면 이 cmdlet이 작업 개체를 CSV 형식으로 변환합니다. 그러면 할당 연산자(=)가 결과 CSV를 $j 변수에 저장합니다.
두 번째 명령은 머리글을 $header 변수에 저장합니다. 기본 머리글과 달리 이 머리글은 "HasMoreData" 대신 "MoreData"를, "JobStateInfo" 대신 "State"를 사용합니다.
세 번째 명령은 CSV 문자열에서 원래 머리글(두 번째 줄)을 삭제한 다음 이를 $j 변수로 반환합니다.
네 번째 명령은 ConvertFrom-CSV cmdlet을 사용하여 CSV 문자열을 작업 개체의 CSV 버전으로 변환합니다. 이 명령은 파이프라인 연산자를 사용하여 $j의 내용을 ConvertFrom-CSV로 보냅니다. 결과 개체에는 머리글에 지정된 대로 "MoreData" 및 "State" 속성이 포함됩니다.
예 4
C:\PS>(get-culture).textinfo.listseparator
C:\PS> ConvertFrom-Csv -inputobject $services -UseCulture
설명
-----------
이 명령은 ConvertFrom-CSV cmdlet을 사용하여 ConvertTo-CSV cmdlet이 변환한 서비스 개체의 CSV 문자열을 변환합니다. 이 명령은 UseCulture 매개 변수를 사용하여 현재 culture의 목록 구분 기호를 사용하도록 ConvertFrom-CSV에 지시합니다.
UseCulture 매개 변수를 사용하는 경우 현재 culture의 목록 구분 기호가 CSV 문자열에 사용된 구분 기호와 일치하는지 확인해야 합니다. 그렇지 않으면 ConvertFrom-CSV가 CSV 문자열에서 개체를 생성할 수 없습니다.
이 예에서 Get-Culture 명령은 ConvertFrom-CSV 명령을 사용하기 전에 목록 구분 기호를 확인하는 데 사용되었습니다.