Цикл рекурсивно по папке в Windows cmd для переименования файлов

Я пытаюсь перебирать папки с изображениями для создания миниатюр с помощью ImageMagic и переименовывать файлы миниатюр с помощью small_ префикс.

когда я выполнить это в одной папке, он отлично работает:

FOR %a in (*.jpg) DO convert %a -thumbnail 30% small_%a

чтобы прокрутить подпапки, мне просто нужен / R флаг:

FOR /R %a in (*.jpg) DO convert %a -thumbnail 30% small_%a

это приведет к новому имени для миниатюры small_c:imagesimage.jpg что неправильно :)

как я могу получить small_ префикс в имя файла при рекурсии через подпапки в скрипт, т. е. от c:imagesimage.jpg to c:imagessmall_image.jpg ?

спасибо.

1 ответов


Я думаю, что это может удовлетворить ваши дела.

for /R %i in (*.jpg) DO convert %i -thumbnail 30% %~di%~pi%~ni_small%~xi