원본 파일 이름의 일부만 사용하여 여러 파일의 이름 바꾸기

원본 파일 이름의 일부만 사용하여 여러 파일의 이름 바꾸기

한 폴더에 있는 40개의 png 파일 이름을 바꾸고 싶습니다. 이름이 매우 깁니다. "blah...blah...blah160.png", "blah...blah...blah200.png"와 같이 연속적으로 이름이 지정됩니다. 즉, 40개의 영숫자 뒤에는 세 자리 숫자(160)의 일련 번호가 옵니다. 파일 이름에 마지막 세 자리만 남길 원하므로 "blah...blah...blah160.png"는 "160.png"가 되어야 합니다. 간단한 한 줄 DOS(cmd.exe) 명령이 있습니까? 윈7에서는?

답변1

다음 cmd 파일이 작업을 수행해야 합니다.

@echo off & setlocal

for %%F in (*.png) do call :doIt %%F
goto xit

:doIt
set name=%~n1
set num=%name:~-3%
set ext=%~x1
set lentest=%name:~40,3%

if not [%lentest%]==[] (
  copy "%1" %num%%ext%
::  del "%1"  
)
goto :EOF

:xit
endlocal

긴 이름의 버전을 실제로 삭제하려면 "del" 줄의 주석 처리를 제거하세요.

이 내용을 더 적은 줄로 압축하는 것이 가능하지만 그렇게 하면 이해하기가 어려워집니다.

관련 정보