본문 바로가기

TechLog

텍스트 파일의 인코딩을 변경하는 Powershell 스크립트

윈도우에서도 기본적으로 배치 파일을 사용해서 배치작업을 처리할 수는 있지만, 텍스트 파일 인코딩을 변경하기 위한 iconv같은 유틸리티가 별도로 존재하질 않아서 여러모로 번거롭다. 그렇다고 메모장을 열어서 하나하나 인코딩을 변경하고 앉아있을 수도 없고 …

다음과 같은 스크립트를 사용하여 Powershell에서 텍스트 파일의 인코딩을 변경할 수 있다 :

 

foreach($filename in ls -name DIR/*.txt) { \
    get-content DIR/$filename | \
    out-file -encoding utf8 -filepath DIR2/$filename \
}

 

get-content와 out-file은 각각 파일 내용을 가져오고 / 텍스트를 파일에 쓰는데 사용되는 명령이다. 기존 윈도우의 명령어에 익숙하다면 type과 copy con 같은 역할을 한다고 생각하면 된다. 잘 모르겠다면 … 그냥 쓰면 된다. type / copy con 명령을 모른다면 표준 입출력의 파이프 개념도 아리까리할테니 그냥 넘어가자.

위 명령은 DIR 디렉토리의 *.txt 파일을 읽어들여 utf8로 변환한 다음 DIR2 디렉토리에 동일한 파일명으로 저장하는 내용을 담고 있다.