Windows 명령 프롬프트를 사용하여 여러 파일 이름을 일괄 변경하는 방법

Windows 명령 프롬프트를 활용하면 여러 파일의 이름을 일괄적으로 변경할 수 있습니다. 이 방법을 통해 대량의 파일 이름을 개별적으로 변경하는 번거로움을 피하고 작업 흐름을 간소화할 수 있습니다. 이 글에서는 명령 프롬프트를 사용하여 여러 파일의 이름을 일괄 변경하는 단계, 기본적인 이름 변경 방법부터 고급 기술에 이르기까지 자세히 설명할 것입니다.

목차

기본 파일 이름 변경 명령

Windows 명령 프롬프트에서 파일 이름을 변경하는 기본 명령은 ren 또는 rename입니다. 이 명령은 매우 간단하며, 기본 형식은 다음과 같습니다.

ren [현재 파일 이름] [새 파일 이름]

예를 들어, document1.txtdocument2.txt로 이름을 변경하고 싶다면 다음 명령을 사용합니다.

ren document1.txt document2.txt

이 명령은 단일 파일에 대해 작동하지만, 와일드카드를 사용하여 여러 파일의 이름을 일괄적으로 변경할 수도 있습니다. 와일드카드는 문자열의 어떤 부분과도 일치하는 특수 기호입니다. 예를 들어, * (별표)는 어떤 문자열과도 일치하고, ? (물음표)는 어떤 단일 문자와도 일치합니다.

일괄 이름 변경 명령 예

명령 프롬프트를 사용하여 여러 파일의 이름을 일괄적으로 변경할 때의 핵심은 와일드카드를 활용하는 것입니다. 아래에서는 실제 사용 예를 설명합니다.

예제 1: 같은 확장자를 가진 파일 일괄 이름 변경

모든 .txt 파일을 .bak로 변경하려면 다음 명령을 사용합니다.

ren *.txt *.bak

이 명령은 현재 디렉토리의 모든 .txt 파일의 확장자를 .bak로 변경합니다.

예제 2: 이름에 공통 패턴이 있는 파일 이름 변경

이름에 공통 접두사가 있는 파일, 예를 들어 report1.txt, report2.txt, report3.txt 등의 이름을 일괄 변경하려면 다음 명령을 사용합니다.

ren report*.txt summary*.txt

이 명령은 report로 시작하는 모든 .txt 파일의 이름을 summary로 시작하도록 변경하면서, 동일한 번호를 유지합니다. 따라서, report1.txtsummary1.txt가 되고, report2.txtsummary2.txt가 되는 식입니다.

예제 3: 번호를 포함한 일괄 이름 변경

특정 패턴에 따라 순서대로 파일 이름을 변경하는 것은 명령 프롬프트만으로는 도전적일 수 있습니다. 스크립트나 추가 도구를 사용해야 할 수 있지만, 기본적인 아이디어는 파일에 임시 이름을 부여한 다음 일련의 단계에서 최종 이름으로 변경하는 것입니다.

배치 파일이나 PowerShell 스크립트를 사용하면, 파일 이름에 순서 번호를 추가하거나 특정 규칙에 따라 일괄적으로 이름을 변경하는 등 더 복잡한 이름 변경 작업을 자동화할 수 있습니다. 이러한 방법은 루핑과 조건 분기를 허용합니다.

이 섹션에서는 Windows 명령 프롬프트를 사용한 일괄 이름 변경의 기본 방법을 소개했지만, 보다 고급 이름 변경 작업에는 스크립팅 지식이 유용합니다.

고급: 조건에 따른 이름 변경

여러 파일의 이름을 일괄적으로 변경할 때 특정 조건을 충족하는 파일만 대상으로 하고 싶을 수 있습니다. 이를 위해서는 명령 프롬프트가 제공하는 것보다 더 강력한 스크립팅 기능이 필요합니다. Windows PowerShell을 사용하면 더 상세한 조건에 따라 파일을 선택하고 이름을 변경할 수 있습니다.

PowerShell을 사용한 조건부 이름 변경

PowerShell을 사용하면 파일 속성이나 내용에 기반한 이름 변경 조건을 세밀하게 조정할 수 있습니다. 다음은 그 예입니다.

Get-ChildItem *.txt | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-10) } | Rename-Item -NewName { "old_" + $_.Name }

이 명령은 다음과 같은 작업을 수행합니다:

  1. 현재 디렉토리의 모든 .txt 파일을 선택합니다(Get-ChildItem *.txt).
  2. 이 파일 중에서 마지막 쓰기 시간이 10일 이전인 파일을 선택합니다(Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-10) }).
  3. 선택된 파일의 이름 앞에 old_를 추가하여 이름을 변경합니다(Rename-Item -NewName { "old_" + $_.Name }).

이 방법을 사용하면 생성 날짜, 크기, 내용 등 다양한 파일 속성에 기반하여 이름 변경 조건을 설정할 수 있습니다.

고급 예제: 파일 내용에 따른 이름 변경

파일 내용을 검색하여 특정 문자열을 포함하는 파일만 이름을 변경하는 것도 가능합니다. 이를 위해서는 파일 내용을 읽고 조건과 일치하는지 확인하는 추가 단계가 필요합니다.

예를 들어, 모든 텍스트 파일 중 “important”라는 단어를 포함하는 파일에만 important_를 접두사로 추가하려면 다음 명령을 사용할 수 있습니다.

Get-ChildItem *.txt | Where-Object { $_ | Select-String -Pattern "important" } | Rename-Item -NewName { "important_" + $_.Name }

이러한 고급 이름 변경 기술을 활용하면 파일 관리 자동화를 크게 향상시킬 수 있습니다. 그러나 PowerShell의 사용은 명령 프롬프트보다 복잡하며, 기본적인 스크립팅 지식이 필요합니다.

일반적인 오류 및 해결 방법

여러 파일의 이름을 일괄적으로 변경할 때 다양한 오류를 마주칠 수 있습니다. 여기에서는 명령 프롬프트를 사용하여 파일 이름을 일괄적으로 변경할 때 발생할 수 있는 일반적인 오류와 그 해결 방법을 소개합니다.

접근 거부

파일이나 폴더에 적절한 접근 권한이 없는 경우 이름을 변경하려고 하면 “접근 거부” 오류가 발생할 수 있습니다. 이 문제를 해결하려면 파일이나 폴더 속성을 열어 “보안” 탭에서 적절한 접근 권한을 설정하거나 명령 프롬프트를 관리자로 실행하십시오.

명령 프롬프트를 마우스 오른쪽 버튼으로 클릭하고 "관리자로 실행"을 선택하십시오

파일을 찾을 수 없음

이름을 변경하려는 파일이 존재하지 않거나 지정된 패턴과 일치하는 파일이 없는 경우 이 오류가 발생합니다. 명령을 실행하기 전에 파일의 존재를 확인하고 올바른 경로 및 파일 이름을 사용하고 있는지 다시 확인하십시오.

구문 오류

명령의 구문에 오류가 있는 경우 이 오류 메시지가 표시됩니다. ren 또는 rename 명령의 올바른 사용법을 확인하고 명령 구문을 정확하게 입력했는지 검증하십시오. 와일드카드를 사용할 때나 파일 이름에 공백이 포함된 경우에는 특별히 주의하십시오.

파일 이름이 이미 존재함

사용하려는 새 파일 이름이 이미 존재하는 경우 이 오류가 발생합니다. 일괄 이름 변경을 수행할 때는 이름이 중복되지 않도록 특히 주의해야 합니다. 특정 패턴에 따라 파일 이름을 변경할 때는 고유성을 보장하기 위해 추가 문자나 숫자를 포함하는 것이 좋습니다.

이러한 오류와 해결 방법을 이해하면 명령 프롬프트를 사용하여 파일 이름을 일괄적으로 변경하는 작업을 더 원활하게 수행할 수 있습니다.

유용한 명령 프롬프트 옵션

Windows 명령 프롬프트를 사용하여 파일 이름을 일괄적으로 변경할 때 활용할 수 있는 몇 가지 유용한 옵션입니다. 이러한 옵션을 사용하면 파일 관리를 더 유연하고 효율적으로 만들 수 있습니다.

디렉토리에서 파일 이름을 재귀적으로 변경

디렉토리의 파일 이름을 모든 하위 디렉토리를 포함하여 변경하려면 for /R 명령을 사용하십시오. 다음 명령은 현재 디렉토리 및 모든 하위 디렉토리의 모든 .txt 파일의 확장자를 .bak로 변경합니다.

for /R %x in (*.txt) do ren "%x" *.bak

특정 패턴에 따라 파일을 선택적으로 이름 변경

특정 패턴이나 조건과 일치하는 파일만 이름을 변경하려면 find 명령을 다른 명령줄 도구와 결합하여 사용하십시오. 예를 들어, 이름에 특정 문자열이 포함된 파일만 이름을 변경하려면 다음 스크립트를 사용할 수 있습니다.

for /R %x in (*example*.txt) do ren "%x" "new_%x"

이 명령은 이름에 example이 포함된 모든 .txt 파일의 이름 앞에 new_를 추가하여 이름을 변경합니다.

파일 이름에 날짜 또는 시간 추가

이름 변경 시 현재 날짜나 시간을 파일 이름에 추가하려면 환경 변수를 사용할 수 있습니다. 다음 명령은 파일 이름 앞에 현재 날짜를 추가합니다.

for %x in (*.txt) do ren "%x" "%date:~-10,2%%date:~-7,2%%date:~-4,4%_%x"

이 명령은 DDMMYYYY_ 형식으로 현재 날짜를 파일 이름에 추가합니다.

이러한 옵션들을 숙달함으로써, 명령 프롬프트를 사용한 일괄 파일 이름 변경을 더 크게 사용자화할 수 있습니다.

결론

Windows 명령 프롬프트를 사용하여 여러 파일의 이름을 일괄적으로 변경하는 것은 파일 관리 작업을 크게 간소화하는 강력한 방법입니다. 기본 ren 명령부터 스크립팅을 포함한 보다 고급 기술에 이르기까지 다양한 기술을 사용하여 파일 이름을 유연하고 효율적으로 변경할 수 있습니다. 이 글에서 소개한 명령과 옵션을 활용하여 일상적인 파일 관리 작업의 효율성을 향상시키십시오.

목차