Страница 1 из 1

Копирование файлов в каталог с "умным" переименованием

Добавлено: Пн окт 26, 2009 17:15
Mite
Подскажите, как с помощью скрипта vbs реализовать следующую задачу.
Имеем:
1) каталог-источник с файлами вида DSCxxxxx.JPG (фотоснимки на флешке мобильного телефона);
2) целевой каталог, куда файлы копируютс после переименования по шаблону [=shelldetails.Модель камеры]_[=shelldetails.Untitled 2.Y-M-D h-m-s];
Хотелось бы автоматизировать процесс таким образом:
1) если в каталоге-получателе файла с подобным именем нет, то он просто копируется;
2) если файл с подобным именем уже есть, то сравниваются контрольные суммы и если они равны, то файл не копируется;
3) если контрольные суммы не равны, то файл копируется с автоматическим переименованием (как это реализовано в диалоге копирования Total Commander - дописыванием номера в скобках, начиная с (2) и т.д.)

Сам могу допереть по примеру готовых скриптов, но поджимает время... :(
Искал в ветке, нашел подобное, но не совсем то... если плохо искал - извиняюсь!

Добавлено: Пн окт 26, 2009 18:10
Samwatas
Критично сделать это именно на vbs?
Дело в том, что на vbs нельзя получить значения из контентных плагов ([=shelldetails.Модель камеры]), во всяком случае без сторонних утилит. Подобную задачу можно решить на АвтоИте, но у меня свободного времени особо и нету (тем более если тебя время поджимает - тут я пас). Но можешь попробовать сделать сам.

Добавлено: Пн окт 26, 2009 18:45
Mite
В принципе некритично.
Меня даже вполне устраивает вариант из двух этапов:
1) ручное копирование в промежуточный каталог с переименованием по данному шаблону;
2) и копирование со сравнением (уже переименованных файлов) из промежуточного каталога в целевой каталог.
Мне интересна автоматизация именно второго этапа.
А vbs интересует потому, что у меня уже есть опыт написания (и достаточно сложных, на мой взгляд :) ) bat-файлов и хотелось бы, разобрав конкретный пример, перейти на уровень выше...
P.S. Я тут параллельно сам разбираю примеры скриптов от Batya, и если у меня получится рабочий скрипт - выложу в теме.

Добавлено: Пн окт 26, 2009 20:47
Samwatas
Если хочется именно vbs, то можешь взять мою утилитку wdx.exe отсюда и потренироваться в написании скриптов (единственное - утиль не работает с плагом shelldetails, зато с exif.wdx (колонка "Model") всё нормально получается). Правда с датой и временем такой фокус не пройдёт, так что для получения даты используй стандартные возможности vbs, я думаю он должен это позволять, или можно подождать пока я не напишу нормальнкю утиль вместо wdx.exe, но когда это будет - я не знаю (времени вечно не хватает).

Добавлено: Пн окт 26, 2009 20:57
Mite
Samwatas, спасибо. Буду пробовать.

Добавлено: Пн окт 26, 2009 21:10
Samwatas
Тут конечно твое личное дело что учить, но я бы посоветовал вместо vbs изучать AutoIt - у него возможностей побольше, также он позволяет создавать достаточно сложный ГУЙ, как для простового скриптового языка. Кроме того, написанные скрипты можно компилировать в EXE и запускать на любой машине. В общем, рекомендую.