Переименование файлов в подкаталогах
Может ли кто-нибудь помочь мне с кодом.... У меня есть главная папка с именем "книга" внутри него 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"