특정 이름, 공백을 제거하고 고유한 문자열을 추가하여 여러 파일의 이름을 바꾸려면 어떻게 해야 합니까?

특정 이름, 공백을 제거하고 고유한 문자열을 추가하여 여러 파일의 이름을 바꾸려면 어떻게 해야 합니까?

나는 가지고있다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

관련 정보