티스토리 뷰

HowTo - 윈도우에서 파일 이름 한 번에 일괄 변경하는 방법 (PowerShell)

 윈도우 PowerShell은 명령 프롬프트와 유사하면서도 더욱 강력한 도구로 사용자가 원하는 방식으로 다양하게 파일 이름을 변경할 수 있습니다. 



 오늘은 별도의 Tool 없이도 윈도우 기본 기능 중 하나인 PowerShell을 이용하여 다중 파일 이름을 변경하는 방법을 살펴보겠습니다.



PowerShell 사용하여 파일 이름 변경하기


1 단일 파일 이름 바꾸는 방법

 PowerShell을 이용하여 파일 이름을 변경하려면 다음과 같은 명령어를 입력합니다.


 rename-item "OLD_FILE_NAME.EXTENSTION" "NEW_FILE_NAME.EXTENSTION"


 명령어에서 따옴표(")는 파일 이름에 공백이 포함된 경우 필요하며, 일반적으로 사용시 따옴표 없이 사용할 수 있습니다.



 1. PowerShell 창에서 변경할 파일이 위치한 폴더로 이동합니다.

 2. 다음 명령어를 입력하여 파일의 이름을 변경합니다.


  rename-item "1-2019-0827-Travel.jpg" "1-2019-0827-Trip.jpg" 


 위 예제에서는 파일 이름을 1-2019-0827-Travel.jpg에서 1-2019-0827-Trip.jpg로 변경합니다.



2 한 번에 여러 파일 이름 바꾸는 방법

 여러 파일의 이름을 한 번에 변경하려면 다음 명령어를 사용합니다. 특히 파일 명명 규칙이 따로 중요하지 않을 때 사용하시면 좋습니다.


 dir | %{rename-item $_ -newname ("NEW_FILE_NAME{0}.EXTENSTION" -F $nr++)}



 1. PowerShell 창에서 변경할 파일이 위치한 폴더로 이동합니다.

 2. 다음 명령어를 입력하여 여러 파일의 이름을 변경합니다.


  dir | %{rename-item $_ -newname ("No_Japan_2019_{0}.jpg" -f $nr++)} 


 위 예제에서는 확장자가 JPG인 모든 파일에 동일한 (No_Japan_2019) 이름으로 변경하고, 이름 끝에 번호를 추가하게 됩니다.


3 한 번에 모든 파일에서 이름 일부를 삭제하는 방법

 유사한 파일 또는 이름의 동일한 부분의 이름을 삭제하기 위해서는 다음과 같은 명령어를 사용합니다.


 dir | rename-item -newname {$_.name -replace "OLD_FILE_NAME_PART", ""}



 1. PowerShell 창에서 변경할 파일이 위치한 폴더로 이동합니다.

 2. 다음 명령어를 입력하여 여러 파일의 이름을 변경합니다.


  dir | rename-item -newname {$_.name -replace "_Japan", ""} 


 위 예제에서는 폴더내 모든 파일 이름에서 "_Japan"이란 단어를 제거합니다. 눈치가 빠른분들은 이 방법을 이용해 파일 이름내 공백이 있는 것도 삭제하실 수 있겠죠?



4 한 번에 모든 파일 이름에 포함된 공백 제거하는 방법

 파일 이름에 공백이 있는 경우, 특히 터미널 프로그램 사용시 문제가 발생할 수 있습니다. 다음 명령어 사용시 파일 이름에 공백을 제거하거나, 밑줄(_)과 같은 구분기호로 대체할 수 있습니다.


dir | rename-item -newname {$_.name -replace " ", ""}



 1. PowerShell 창에서 변경할 파일이 위치한 폴더로 이동합니다.

 2. 다음 명령어를 입력하여 여러 파일의 이름을 변경합니다.


  dir | rename-item -newname {$_.name -replace " ", ""} 


 위 예제에서는 모든 파일 이름에 포함된 공백을 제거하게 됩니다. 만약 공백을 밑줄(_)로 바꾸고 싶다면 -replace 옵션에서 " ","_"으로 대체하시면 되겠죠.



5 한 번에 모든 파일 이름 일부를 바꾸는 방법

 유사한 모든 파일 이름에서 동일한 문구를 변경하고 싶다면 다음 명령어를 입력하면 됩니다.


 dir | rename-item -newname {$_.name -replace "OLD_FILE_NAME_PART", "NEW_FILE_NAME_PART"}



 1. PowerShell 창에서 변경할 파일이 위치한 폴더로 이동합니다.

 2. 다음 명령어를 입력하여 여러 파일의 이름을 변경합니다.


  dir | rename-item -newname {$_.name -replace "_2019_", "War_"} 


 위 예제에서는 파일 이름중 "_2019_" 문구가 포함된 모든 파일에서, 이를 "War_"로 변경하게 됩니다.


 또한 기존 파일 이름에서 띄워쓰기(공백)을 주고 싶다면 동일한 명령어로 변경할 수 있습니다. 단, 앞서 말씀드렸듯 공백이 포함된 이름은 반드시 따옴표(")를 입력하셔야 합니다.



 dir | rename-item -newname {$_.name -replace "NoWar_", "No Japan"} 



6 파일의 확장자만 변경하는 방법

 PowerShell에서도 명령 프롬프트와 마찬가지로 호환되는 확장자 명으로 변경할 수 있습니다. 다만 명령 프롬프트에 비해 명령어가 다소 길고, 복잡해 개인적으로 잘 사용하지 않습니다.


 PowerShell에서 확장자를 변경하기 위해서는 다음과 같은 명령어를 사용합니다.


dir | rename-item -newname {[io.path]::ChangeExtension($_.name, "NEW_EXTENSION")}


 명령 프롬프트에서 사용되는 ren *.OLD_EXTENSION *.NEW_EXTENSION 명령어에 비해 확실히 복잡하죠? 확장자만 변경하고 싶다면, CMD를 이용하시는 것을 추천드립니다. :)



 1. PowerShell 창에서 변경할 파일이 위치한 폴더로 이동합니다.

 2. 다음 명령어를 입력하여 여러 파일의 확장자를 변경합니다.


  dir | rename-item -newname {[io.path]::changeextension($_.name, "png")} 


 위 예제에서는 모든 파일의 확장자를 JPG → PNG로 변경합니다. 만약 명령 프롬프트를 이용했다면 ren "*.jpg" "*.png"로 끝나게 됩니다. 선택은 여러분께서... ;)



7 특정 확장자 파일만 이름 변경하는 방법

 지금까지는 해당 폴더의 모든 파일 이름을 변경했다면, 문서, 이미지 등 특정 확장자를 가진 파일만 이름을 변경하는 법을 살펴보겠습니다. 특정 확장자만 이름을 변경하고 싶다면 "-filter" 옵션을 사용할 수 있습니다.


 dir -filter *.EXTENSION | %{rename-item $_ -newname ("NEW_FILE_NAME{0}.EXTENSTION" -f $nr++)}



 1. PowerShell 창에서 변경할 파일이 위치한 폴더로 이동합니다.

 2. 다음 명령어를 입력하여 특정 확장자 파일의 모든 이름을 변경합니다.


  dir -filter *.jpg | %{rename-item $_ -newname ("NoJapan_{0}.jpg" -f $nr++)} 


 위 예제에서는 "JPG" 확장자를 포함하는 파일만 이름을 변경하게 됩니다.


 주의하실 점은 파일 탐색기를 이용한 방법처럼 실수로 잘못된 이름으로 변경시 취소가 불가능하므로, 원본 파일의 이름을 바꾸기 전 항상 테스트 실행 후 변경하는 것이 좋습니다.


 지금까지 윈도우10에서 PowerShell을 이용한 파일 이름 변경 방법을 살펴보았습니다. 

댓글
댓글쓰기 폼