Переименование файлов в подкаталогах

Может ли кто-нибудь помочь мне с кодом.... У меня есть главная папка с именем "книга" внутри него 500 подпапок, как показано ниже

book/page1/Image/image 2.jpg
book/page2/Image/image 2.jpg
book/page3/Image/image 2.jpg
book/page4/Image/image 2.jpg
book/page5/Image/image 2.jpg
.
.
.

я хочу, чтобы изображения были переименованы как:

book/page1/Image/1.jpg
book/page2/Image/2.jpg
book/page3/Image/3.jpg
book/page4/Image/4.jpg
book/page5/Image/5.jpg
.
.
.

Помогите, пожалуйста

3 ответа

Решение

Пакетный файл ниже переименовывает файлы в имена папок, удаляя page часть:

@echo off
setlocal EnableDelayedExpansion

cd \book
for /D %%a in (*) do (
   set folder=%%a
   ren "%%a\Image\image 2.jpg" "!folder:page=!.jpg"
)

Пакетный файл ниже переименовывает файлы в последовательный двухзначный номер, независимо от имен папок:

@echo off
setlocal EnableDelayedExpansion

cd \book
set number=100
for /D %%a in (*) do (
   set /A number+=1
   ren "%%a\Image\image 2.jpg" "!number:~1!.jpg"
)

Если вы хотите, чтобы номера имели только одну цифру, измените присвоение номера следующим: set number=10,

@ECHO OFF
SETLOCAL
FOR /f "tokens=1*delims=[]" %%i IN (
 'dir /s /b /a-d "u:\book\image 2.jpg"^|find /n /v ""'
) DO ECHO REN "%%j" image%%i.jpg

Это должно сообщить о необходимых переименованиях.

Удалить ECHO Ключевое слово из последней строки, чтобы фактически выполнить переименование - после проверки.

Поместите это в файл летучей мыши в папке книги. Конечно, вы должны сделать копию всей папки с книгами, прежде чем пытаться делать что-то подобное.

@echo off
for /f "delims=page" %%a in ('DIR /ad /b') do rename "page%%a\Image\Image2.jpg" "%%a.jpg"
Другие вопросы по тегам