PowerShell에서 정보를 CSV 파일로 보내야 할 경우, Export-CSV cmdlet이 도움이 됩니다. 이 cmdlet을 사용하면 관리자들은 헤매는 텍스트를 구조화된 형식으로 처리하는 시간을 절약할 수 있습니다. Excel로 작업하는 대신 PowerShell을 사용하여 CSV 파일을 생성할 수 있습니다.
Export-Csv cmdlet을 사용하여 PowerShell 개체로부터 보고서를 생성하고 데이터베이스로 보낼 수 있는 CSV 파일을 생성할 수 있습니다.
CSV 형식은 텍스트 파일로 저장된 쉼표로 구분된 행의 목록에 불과합니다. 그냥 텍스트 파일로서, 우리는 기술적으로 일반적인 텍스트 파일 명령인 Set-Content
를 사용하여 작업을 수행할 수 있습니다. 그러나 일반 명령을 사용하면 필요한 CSV 구조를 직접 구축해야 합니다. 왜냐하면 이미 파일로 CSV 출력을 보낼 수 있는 Export-Csv 명령이 있기 때문입니다.
CSV 파일은 특정한 구조를 필요로 합니다. 이 cmdlet은 정보를 이해하고 읽고 CSV 파일로 변환할 수 있는 능력 때문에 PowerShell cmdlet이 매우 편리합니다.
ManageEngine ADManager Plus를 사용하여 Active Directory, Exchange 및 Microsoft 365를 관리하고 보고하세요. 무료 평가판 다운로드!
개체 -eq CSV 행
Export-Csv
cmdlet은 PowerShell 객체를 CSV 파일로 저장하는 한 가지 목적을 가지고 있습니다.
예를 들어, foo
와 bar
라는 두 개의 속성을 가진 객체가 있다고 가정해보겠습니다. 이러한 속성은 각각 1
과 2
라는 값이 있습니다. 이 객체를 Export-Csv
에 보내면, 두 개의 열과 하나의 행이 있는 CSV 파일이 생성됩니다. 그런 다음 CSV 내용을 가져와 어떻게 보이는지 검사할 수 있습니다.
PowerShell은 실제로 메모리의 객체와 CSV 파일을 동일하게 처리합니다! 이 명령어를 사용하여 객체를 파일 시스템에 저장하는 것과 같습니다. 일반 텍스트 PowerShell 명령어 Get-Content
를 사용하면, Export-Csv
명령이 내보낸 원시 텍스트를 검사할 수 있습니다.
명령어가 각 행 항목 주위에 이중 따옴표를 사용한다는 것에 유의하세요. 이를 통해 공백이 포함된 필드를 포함할 수 있습니다.
Export-CSV 유용한 매개변수
Windows PowerShell 5.1에서는, Export-CSV cmdlet이 CSV 파일을 생성한 객체의 유형을 나타내는 행을 포함합니다. 이 행을 보고 싶지 않다면, 인기있는 매개변수인 NoTypeInformation
을 사용하여 이 행을 완전히 제거할 수 있습니다.
다양한 CSV 파일이나 데이터 소스와 작업하는 경우, Export-CSV가 기존 파일을 덮어쓰는 방식으로 작동하는 것을 알게 될 수도 있습니다. 그러나 Append 매개변수를 사용하는 경우는 문제가 없습니다. Append 매개변수를 사용하면 기존 파일을 덮어쓰지 않고 CSV에 행을 추가할 수 있습니다.
다른 유용한 매개변수는 Delimiter입니다. 때로는 필드를 구분하는 일반적인 목록 구분 기호(쉼표)를 사용하지 않고 CSV 파일을 만들어야 할 수도 있습니다. 대신, 구분 기호로 탭이나 세미콜론을 사용하는 데이터가 많은 파일을 만들어야 할 수도 있습니다. Export-Csv PowerShell cmdlet을 사용하면 필요한 구분 기호를 지정할 수 있습니다.
따옴표 처리
CSV 행을 생성할 때, Export-Csv는 모든 필드를 따옴표로 감싸게 됩니다. 일부 상황에서는 이러한 처리가 원치 않을 수 있습니다. 불행히도 이를 방지할 방법은 없습니다. 그러나 약간의 코드를 사용하여 이를 구현할 수 있습니다.
아래에서는 CSV 파일을 생성하는 예제를 볼 수 있습니다. 그런 다음 Get-Content가 원시 텍스트 파일을 읽고, 메모리 내의 모든 이중 인용부호를 제거한 다음 Set-Content가 메모리 내의 해당 정보를 디스크에 다시 작성합니다.
ManageEngine ADManager Plus를 사용하여 Active Directory, Exchange 및 Microsoft 365을 관리하고 보고하세요. 무료 평가판 다운로드!
요약
Export-Csv
cmdlet은 CSV 데이터를 관리하는 데에 간단하면서도 매우 유용한 도구입니다. 이 도구는 CSV 데이터 파일의 구조를 이해하고 PowerShell 객체를 CSV 행으로 변환할 수 있습니다.
I’m not about to go back to batch, or VBScript where creating a CSV file from an existing object required instantiating a FileSystemObject, creating a loop and a bunch of Write()
methods!
이 명령은 PowerShell 코드 작성을 시작하는 또 다른 좋은 이유입니다!