2

У меня есть n файлов, которые я хочу переименовать, удалив определенное имя, пробел, и я хочу добавить уникальную строку с новым именем:

Например

"MPKL 100055.jpg" 
"MPKL 200452.jpg" 
"MPKL 500002_thumb.jpg"

Я хочу переименовать вышеуказанные файлы в:

"00100055.jpg"
"00200452.jpg"
"00500002_thumb.jpg"

Два нуля должны стоять перед существующим числом.

3 ответа3

2

В приведенном ниже примере я использовал цикл FOR /F для установки разделителей и токенов, разбирая части имени файла, и использовал их для установки переменных для последующего использования с командой REN . Я также использовал 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

Дополнительные ресурсы

1
@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
1

Я много переименовываю файлы, и мне очень удобно использовать Bulk Rename Utility. Это свободно. Вы можете переименовывать файлы и папки в папках и / или подпапках различными способами, включая изменение расширений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .