다음을 통해 공유


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 명령을 사용하기 전에 목록 구분 기호를 확인하는 데 사용되었습니다.





참고 항목

개념

ConvertTo-CSV
Export-CSV
Import-CSV