|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - пакетное конвертирование с регулярными выражениями |
|
CMD/BAT - пакетное конвертирование с регулярными выражениями
|
Новый участник Сообщения: 8 |
Доброго времени суток.
Помогите дописать скрипт ![]() Задача: Имеется папка с jpg файлами. Названия всех файлов являются либо числами, либо в формате 5(1).jpg, 5(2).jpg, 5(3).jpg, 12(1).jpg, 12(2).jpg, 12(3).jpg, 12(4).jpg и т.д. Максимальное значение числа в скобках 9. Есть программка IrfanView позволяющая из командной строки слить несколько файлов jpg в один tiff. Команда будет выглядеть так i_view32.exe /multitif=(Название_tiff_файла,первый_jpg_файл,второй_jpg_файл,третий_jpg_файл,...,N_jpg_файл) Необходимо сделать bat-ник который проходил бы по всем названиям файлов в папке и делал из файлов 5(1).jpg, 5(2).jpg, 5(3).jpg один файл 5.tiff и дальше по аналогии. Батник будет запускаться из папки с jpg-ами Я тут попробовал набросать скрипт, но он почему то не работает. Подозреваю что это из-за проблемы раннего связывания, но два дня чтения справочника по командной строке результатов не дали. Логика такова: в переменную var пишется название текущего файла из цикла, потом отбрасываются последние 4 символа (расширение), потом последние 3 символа сравниваются с (1), и если совпало - в переменную var1 пишется часть названия первого файла до скобок (то есть в случае если файл называется 5(1).jpg в переменную должно записаться 5). Если всё это произошло, вложенный цикл заново пробегает все файлы и ищет файл, у которого часть названия до скобок равна Var1. Если находит - записывает его название (вместе со скобками) в Var2 и идёт на следующий вложенный цикл искать. И так до (9). На оптимизацию скорости выполнения можно положить, главное чтобы работало. Вот мой скрипт. Поправьте его пожалуйста, сроки горят ![]() for %%a in (*) do ( set var=%%a set var=%var:~0,-4% if %var:~-3%==(1) do set var1=%var:~0,-3% ( for %%a in(*) do ( if %var:~0,-3%==var1 do ( set var2=var for %%a in(*) do ( if %var:~0,-3%==var1 do ( set var3=var for %%a in(*) do ( if %var:~0,-3%==var1 do ( set var4=var for %%a in(*) do ( if %var:~0,-3%==var1 do ( set var5=var for %%a in(*) do ( if %var:~0,-3%==var1 do ( set var6=var for %%a in(*) do ( if %var:~0,-3%==var1 do ( set var7=var for %%a in(*) do ( if %var:~0,-3%==var1 do ( set var8=var for %%a in(*) do ( if %var:~0,-3%==var1 do ( set var9=var for %%a in(*) do ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) i_view32.exe /multitif=(var1+".tif",var2+".jpg",var3+".jpg",var4+".jpg",var5+".jpg",var6+".jpg",var7+".jpg",var8+" .jpg",var9+".jpg") ) pause |
|
Отправлено: 10:45, 04-12-2010 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Спасибо большое за помощь
![]() |
Отправлено: 17:58, 04-12-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать А подскажите, если файлы будут не 5(1).jpg, 5(2).jpg .... а 5.jpg, 5 001.jpg, 5 002.jpg.... как надо изменить последний скрипт чтобы всё так же работало?
![]() |
Отправлено: 16:07, 05-12-2010 | #12 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать 5[пробел]00x.jpg ? Другие пробелы в имени могут быть? Цифр 00x вегда 3?
|
Отправлено: 16:40, 05-12-2010 | #13 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать не могут быть.
да всегда три, но в каждой группе есть файл и без цифр, то есть 5.jpg, 6.jpg а к ним уже 5 001.jpg, 5 002.jpg и т.п. |
Отправлено: 16:42, 05-12-2010 | #14 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать
Запакует файлы не только с цифрами, но с буквами 5 abc.jpg, 5 def.jpg ...
|
Отправлено: 17:02, 05-12-2010 | #15 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать просто красавчик ))
спасбио большое ![]() |
Отправлено: 17:06, 05-12-2010 | #16 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Пакетное переименование файлов | ArsenBespalov | Скриптовые языки администрирования Windows | 9 | 11-08-2016 03:56 | |
[решено] Пакетное переименование ярлыков | SimSim | Хочу все знать | 9 | 24-10-2012 10:44 | |
CMD/BAT - [решено] Пакетное преобразование данных с помощью cmd | Tosyk | Скриптовые языки администрирования Windows | 22 | 26-11-2010 14:13 | |
CMD/BAT - [решено] Пакетное переименование с использованием алфавитного счётчика | kotik147 | Скриптовые языки администрирования Windows | 6 | 13-05-2010 00:03 | |
Помогите разобраться с регулярными выражениями | pingUIN | Хочу все знать | 2 | 31-01-2007 12:26 |
|