파일 이름 100개를 바꾸는 데 걸리는 시간보다, 잘못 바꾼 100개를 되돌리는 시간이 더 깁니다. 그래서 일괄 변경의 첫 결과는 바뀐 파일이 아니라 변경 예정표여야 합니다.

특히 “가.txt” 두 개가 화면에서는 같아 보여도 내부 문자 조합은 다를 수 있습니다. 대소문자를 구분하는 환경에서 만든 Report.txt와 report.txt를 다른 환경으로 옮길 때도 문제가 생깁니다. 금지 문자만 지웠다고 안전한 이름이 되는 것은 아닙니다.

TRY IT HERE

파일을 건드리지 않고 이름 후보만 비교합니다.

입력은 현재 탭에서만 처리되며 자동 수정되지 않습니다. 실제 개인정보 대신 예제를 사용하세요.

최대 20만 자 · 원본 자동 수정 없음

세부 데이터·판정 규칙

예제에서 확인한 세 가지 함정

입력발견한 점대응
CON.txtWindows 예약 이름별도 접두사 후보를 만들고 사람이 확인
가.txt / 가.txtNFC 정규화 후 같은 이름원본 두 개를 한 파일로 덮어쓰지 않기
Report.txt / report.txt대소문자 무시 비교에서 충돌이동할 환경의 규칙 확인

예약 이름을 file_CON.txt로 바꾸는 것은 이 도구가 제안하는 방식일 뿐, 운영체제가 정한 유일한 정답은 아닙니다. 후보가 기존 폴더의 다른 이름과 겹칠 수도 있으므로 실제 디렉터리 검사까지 필요합니다.

실행보다 먼저 남길 네 가지

  1. 원본 폴더를 백업하고, 원래 이름과 변경할 이름을 한 행에 적습니다.
  2. 새 이름끼리의 중복과 기존 파일과의 충돌을 함께 확인합니다.
  3. 권한·경로 길이·예약 이름을 실제 사용할 환경에서 점검합니다.
  4. 일부 임시 파일로 변경과 복원을 시험한 뒤 본 작업을 승인합니다.

실제 파일 작업은 임시 폴더에서만 시험했습니다.

함께 제공한 Node.js 예제는 임시 폴더에 작은 텍스트 파일을 만들고, 변경 예정표를 검증한 뒤 이름 변경과 복원을 수행합니다. 기존 파일의 내용을 해시로 대조하므로 이름만 돌아왔는지, 내용까지 같은지도 확인합니다. 사용자 폴더나 실제 업무 파일로 시험하지 않았습니다.

브라우저의 위 도구는 이름 후보만 검사합니다. 파일 시스템에 접근하지 않으므로 이미 존재하는 파일·권한·심볼릭 링크를 확인할 수 없습니다. 두 검사의 범위를 섞지 마세요.

node rename-lab-20260831.mjs
# 새 임시 폴더에서만 예제 실행. 실제 업무 폴더 경로는 받지 않습니다.

이런 경우에는 실행하지 않습니다.

  • 같은 대상 이름을 가리키는 행이 하나라도 있습니다.
  • 원래 파일이 없어졌거나 예정표를 만든 뒤 내용이 바뀌었습니다.
  • 변경할 이름에 경로 구분자가 들어 있습니다.
  • 백업 또는 되돌릴 표가 없거나, 폴더 동기화가 동시에 파일을 바꾸고 있습니다.

이 예제는 범용 일괄 이름 변경 프로그램이 아닙니다. Windows의 모든 경로 제약과 네트워크 드라이브·동기화 프로그램의 동작을 보장하지 않습니다. 실제 파일에는 검토된 도구와 복구 계획을 사용하세요.

이 글의 재현 자료

전체 자료의 범위·실행 방법·주의사항은 재현 자료 안내에서 한번에 확인할 수 있습니다.

원문과 함께 읽기

임시 폴더 3개 파일로 변경과 복원을 실행했습니다.

2026년 9월 24일 로컬 Node.js 임시 폴더에 report final.txt, 00123.csv, 한글 메모.md를 새로 만들었습니다. 이 실험에서 직접 만든 세 파일의 이름을 확인한 뒤 01-부터 03-까지로 이름을 바꾸고, 역순으로 되돌렸습니다. 복원 후 이름 3개와 내용 SHA-256가 모두 일치했습니다.

검사결과
예정표 파일 수3
이름 변경 후 원래 이름 존재0
복원 후 이름3/3 일치
복원 후 해시3/3 일치

이 실험은 새로 만든 임시 폴더에서만 수행했습니다. 실제 사용자 폴더·클라우드 동기화·심볼릭 링크·권한은 시험하지 않았습니다.

중복된 목표 이름은 첫 변경 전에 멈춥니다.

A?.txt와 A*.txt에서 기호를 대시로 바꾸면 둘 다 a-.txt가 될 수 있습니다. 이런 충돌은 한 개를 먼저 바꾼 뒤 알게 되면 되돌리기가 복잡해집니다. 예정표에서 목표 이름의 중복, 기존 파일과의 충돌, 대소문자·Unicode 정규화를 모두 확인하고 하나라도 있으면 쓰기를 시작하지 않습니다.

재현 자료

변경·복원 결과(JSON)와 임시 폴더 실행 코드(Node.js)를 함께 제공합니다.