2014-02-20 9 views
-1

Я ищу, чтобы создать сценарий, который переименует все изображения в папке после имени папки, в которой они находятся. Это будет использоваться для переименования нескольких папок с изображениями сразу, так как я использую его для стандартизации схема именования всех моих комиксов. Поэтому я бы сказал, что 75 * .cbz плохо разобщен в каталоге, затем я запустил указанный скрипт из папки, содержащей подпапки, содержащие изображения, которые составляют каждый комикс, чтобы переименовать каждое изображение.Пакетное переименование файлов с использованием имени папки?

структура будет представлять собой, например:

PageRenamer.bat

Название серии 000 (год) \

Название pg1.jpg, имя pg2.jpg ... Имя pg24.jpg

Название серии 001 (год) \

Название серии 001 000.jpg, название серии 001 001.jpg ... Название серии 001 025.jpg

Etc ...

Конечный результат я ищу то, что после запуска сценария каждое изображение называется Series Name 001 (Year) 000.jpg - Series Name 001 (Year) 025.jpg (количество страниц/изображений могут различаться) и пребывает в папке Series Name 001 (Year)\. Теперь все это надеется, что мои комиксы будут однослойными архивами. Было бы даже лучше, если бы был способ интегрировать возможность перемещения любых изображений в подпапках в каждой подпапке (комический корень) в корневую подпапку (комический корень). Пример:

PageRenamer.bat

Название серии 000 (год) \

Series Название 000 \

Имя pg1.jpg, имя pg2.jpg ... Имя pg24.jpg

Название серии 001 (год) \

Название серии 001 \

Название серии 001 \

Название серии 001 000.jpg, название серии 001 001.jpg ... Название серии 001 025.jpg

Etc ...

Изменение его в соответствии с форматом примера 1 (включая удаление не используемых ранее папок). Любая помощь очень приветствуется. Я с удовольствием получу скрипт, достаточно простой, чтобы выполнить первую задачу, поскольку большинство комиксов - это один слой. Это было бы огромным бонусом, если бы мне не пришлось беспокоиться о том, чтобы зафиксировать те, которые нет.

+2

Как выглядит ваш текущий сценарий и какие у вас проблемы? (сообщения, как правило, закрываются, если вы не указали, что вы уже пробовали, и какие проблемы вы столкнулись) – admdrew

+0

Ну, я искал и искал, и я нашел 100 различных способов переименовать их всех с помощью (1) - (25), но это оба уродливые и не такие функциональные, как схема 000-025. Я не могу найти так, чтобы их пронумеровать без скобок. Я мог бы написать некоторый скрипт bs, который, как я знаю, не будет работать, но я не вижу смысла, поскольку сценарий для этого правильно будет совершенно другим. Я также не знаю, как архивировать перемещение изображений в каждый корень папок, но это бонусная строка кода, насколько мне известно. – Dracrius

+0

Код Binaryatrocity точно, где я нахожусь. Я не могу понять, как сделать этот простой код надлежащим образом выполнить эту задачу. В частности, использование имени папок и нумерации изображений 000-025, а не по умолчанию (1) - (26), которое используется при переименовании нескольких файлов. – Dracrius

ответ

0

Я просто брошу несколько строк сценария партии, чтобы указать вам в правильном направлении. Вы можете начать с forloop как это, который будет перечислять все подкаталоги в вашей комической папке:

for /d %%D in (*) do 

Тогда есть второй forloop там, чтобы взять все.JPG-х в каждом подкаталоге и переименовать их:

for %%f in (*.jpg) do (
     #here you will want to craft a string for the filename, using the subdirectory name (%D) 
     ren "%%F" "your-crafted-string.jpg" 
) 

Вам нужно будет отслеживать переменную для хранения # файлов вы обрабатываются для именования:

set /A num=0 

Вы можете увеличивать этот пробег каждого цикла во внутреннем цикле:

set /A num+=1 

и сбросить его для каждого приращения внешнего контура (каждый подкаталог):

set /A num=0 

Крафт строку внутри внутреннего цикла для каждого файла будет выглядеть примерно так (непроверенный):

ren "%%F" "!%%D%_%num%!.jpg" 

Вы можете прочитать это как `переименовать [файл] как«[Имя директории] _ [значение of num] .jpg "

+0

Спасибо за вашу помощь, но это основные вещи, которые я уже знал, но не могу найти способ заставить его работать. В частности, потому что я хочу схему нумерации 000-025 (фактически начиная с 0) вместо схемы (1) - (26). Плюс я не знаю строковых манипуляций или как написать строку, которая будет использовать имя папки. Не могли бы вы помочь с этим? Я использую много сценариев переименования, которые я написал, но все они простые, которые либо меняют вещи до, либо после «.». Это означает расширение. – Dracrius

+0

Можете ли вы изменить свой вопрос, чтобы показать нам, что вы пробовали? Я был бы рад помочь выяснить, где вы повесили трубку. – binaryatrocity

+0

Я всегда переименовал/переместил/удалил вещи с очень конкретными именами или расширениями на что-то еще определенное или основанное на исходном имени файла. Я не знаю, как настроить переменные в этом экземпляре, чтобы использовать имя папки и/или номер в 000 formate. – Dracrius

Смежные вопросы