![]() |
Копирование фото из папки №2 в папку №1 на основании сравнения
Добрый день.
Нужна помощь в решении следующего вопроса: Есть 2 сетевых хранилища (далее №1 и №2) с изображениями. Интересующие изображения имеют формат имени 1234_100_1.jpg (код_id_номер фото - код и id любые числа), причём в хранилище №1 они лежат все в одной папке, а в хранилище №2 в разных. Необходимо сравнить оба хранилища по наличию jpg с одинаковыми именами, игнорируя файлы другого расширения и jpg с текстом в имени, например 111_название_1 или 111_222_1-2. Если находится файл с одинаковым именем, например 228_145_1.jpg, то копируем из хранилища №2 все фото с этим кодом и id, то есть 228_145_2.jpg 228_145_3.jpg и тд в хранилище №1. |
Код:
@Echo Off |
megaloman, спасибо, завтра опробую.
Вопрос по маске Set "Mask=[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9]_[0-9]", в именах может быть разное количество цифр в части кода и id вплоть до 6 символов, возможно как-то это задать в маску? В текущем исполнении, если правильно понял, будут искаться файлы с четырьмя - тремя - и одним символами. |
Viberezh, Поставьте четко задачу: у меня решается задача для файлов формата 1234_123_1.jpg
Объясните, сколько знаков (min-max) может содержаться в каждой части имени, сейчас это жестко 4-3-1. |
megaloman, в первой части от 4 до 6 знаков, во второй от 1 до 6 знаков.
P.S. Возможно по результату выполнения вывести в текстовой документ имена скопированных файлов? |
Вот вариант: во всех трёх частях число знаков произвольное. В выделенной строке закомментирована маска для фиксированного количества в 1 цифру в третей части. Если Вам надо так, уберите rem.
Чтобы не было недопонимания: берётся файл в первой папке и, если он имеется во второй папке, копируются в первую папку из второй все файлы с одинаковыми первой и второй частью имени. Лог файл создаётся в первой папке под именем скрипта с расширением log Код:
@Echo Off |
megaloman, дополнение к задаче:
Настроил копирование в другую папку Set "Dest=Name", нужно переименовать третью часть файлов после копирования по алгоритму: 1234_123_2.jpg = 1234_123_9.jpg; 1234_123_3.jpg = 1234_123_10.jpg и т.д. по возрастанию. Возможно реализовать? Заранее спасибо! Скрытый текст
Код:
@Echo Off |
Цитата:
Set "Dest=Name", |
megaloman, переименовать скопированные файлы по результату работы Вашего скрипта, только не в папку Set "Dir1=\\Server\Test1" как было изначально, а в мою отдельную папку "Set Dest=Name"
|
Viberezh, Почему 2 переименовываем именно в 9? +7 - это задаваемая величина, или её надо как-то определить?
Я правильно понимаю: есть некая папка заданная в %Dest%, внутри папки надо все файлы с номерами, кроме 1, переименовать в номера +7 ? А если есть ряд файлов _2 _5 _8 с дырками в нумерации, их во что переименовывать, в _9 _12 _15 или в _9 _10 _11 ? Если просто добавлять +7 к имени, то в дополнение к Вашему (моему изменённому) скрипту
Код:
.................... Или отдельным скриптом
Код:
@Echo Off |
megaloman, возьмём, к примеру, файл 1234_100_2.jpg, на нём изображен товар, последняя цифра, в нашем случае 2, это порядковый номер, то есть на фото 1234_100_2.jpg — 1234_100_8.jpg изображён товар в разных ракурсах, переименовать _2 в конце имени в 9 нужно для того, чтобы после заливки на сайт не перезаписывать уже имеющиеся ракурсы, для большинства товаров имеется до 9 ракурсов.
Дырок в нумерации быть не должно, но если вдруг окажется, то _2 _5 _8 станут _9 _12 _15. |
Viberezh, сделано
|
megaloman, спасибо!
|
Время: 05:03. |
Время: 05:03.
© OSzone.net 2001-