나는 가지고있다N특정 이름, 공백을 제거하여 이름을 바꾸려는 파일 수, 새 이름에 고유한 문자열을 추가하고 싶습니다.
예:
"MPKL 100055.jpg"
"MPKL 200452.jpg"
"MPKL 500002_thumb.jpg"
위 파일의 이름을 다음과 같이 바꾸고 싶습니다.
"00100055.jpg"
"00200452.jpg"
"00500002_thumb.jpg"
기존 숫자 앞에는 두 개의 0이 와야 합니다.
답변1
아래 예에서는/F에 대해파일 이름 부분을 구문 분석하는 구분 기호 및 토큰을 설정하고 이를 사용하여 나중에 사용할 변수를 설정하는 루프렌명령. 나는 또한Setlocal EnableDelayedExpansion루프 내 반복마다 이름 바꾸기 명령을 사용하여 적절하게 사용되도록(런타임에 구문 분석되지 않음) 루프에 설정된 변수의 확장을 처리합니다.
@ECHO ON
SETLOCAL ENABLEDELAYEDEXPANSION
SET SourceDir=C:\Users\User\Desktop\Tester
FOR /F "TOKENS=1-3 DELIMS=. " %%F IN ('DIR /B /A-D "%SourceDir%\*.jpg"') DO (
SET "part1=%%~F"
SET "part2=%%~G"
SET "part3=%%~H"
REN "%SourceDir%\!part1! !part2!.!part3!" "00!part2!.!part3!"
)
GOTO EOF
추가 리소스
답변2
파일 이름을 많이 바꾸는데 사용하기가 매우 편리합니다.대량 이름 바꾸기 유틸리티. 공짜 야. 확장자 변경을 포함하여 다양한 방법으로 폴더 및/또는 하위 폴더에 있는 파일과 폴더의 이름을 바꿀 수 있습니다.
답변3
@echo off
Setlocal enabledelayedexpansion
Set "Pattern=MPKL"
Set "Replace=00"
For %%# in ("FOLDER_PATH/*.jpg") Do (
Set "File=%%~nx#"
Ren "%%#" "!folder!!file!" "!file: =!!File:%Pattern%=%Replace%!"
)
Pause&Exit