![]() |
Сортировка файлов по папкам
Вложений: 2
Добрый день Товарищи!
Нужна ваша помощь в написании скрипта, испробовал различные варианты с разных форумов, не могу найти решение для своей задачи. Есть главная директория, в которой содержаться папки соответствующие названию серверов, в этих папках содержаться папки с названиями БД для каждого сервера и уже в каждой папке с БД содержаться zip файлы имена которых соответствует следующей маски "Имя БД_ДД-ММ-ГГГГ_ччмм.zip" (в именах также могут быть "пробелы"), скрин 1: ![]() Все папки и файлы создаются автоматически по определенному скрипту, обновляются и дополняются каждый день. В папках с БД накопилось много архивов и будут копиться дальше, хотелось бы автоматически сортировать все zip файлы. Нужно чтобы скрипт заходил в каждую папку с БД, перебирал список файлов, определял дату создания файлов каждой папки (в названии файла тоже есть дата создания, можно по маске из имени файла) и создавал папки "ГГГГ", затем внутри "ММ" в каждой конечной папке и далее перемещал все zip файлы в соответствующую папку с "ГГГГ\ММ", скрин 2: ![]() Перебрал много разных вариантов, уже совсем запутался. Буду весьма признателен сообществу единомышленников за помощь! Всем хорошего дня! |
Постановка:
Есть "Директория\Папка" В ней файлы "Директория\Папка\Папка_ДД-ММ-ГГГГ_ччмм.zip" Их надо рассортировать по подпапкам: "Директория\Папка\ГГГГ\ММ\Папка_ДД-ММ-ГГГГ_ччмм.zip" Если это так, то: Код:
@Echo Off Чтобы не возиться с выделением из имен года и месяца, забил диапазон годов 2000 ... 2050 Для времени выполнения, ИМХО, это несущественно |
Цитата:
В 2500 не пробовали заглянуть? |
Вложений: 2
megaloman, спасибо вам огромное за ваш труд!
Скрипт отлично обрабатывает содержимое папок и перемещает все файлы по соответствующим каталогам, скрин 3: ![]() Вопрос для уточнения, можно ли не в явном виде объявлять пути к конечным проверяемым папкам? Кол-во папок с названиями серверов могут меняться, особенно сами конечные папки с названиями БД. В разных папках, разное кол-во и они периодически добавляются, скрин 4: ![]() Добавлять их постоянно вручную в скрипт трудоемко. Можно ли добавить возможность указывать например только изначальную папку откуда нужно начинать проверку, а скрипт сам заходил бы в каждую папку с сервером, далее в ней разное кол-во папок с названиями БД, заходил бы по очереди в каждую папку с названием БД. Далее делал то что было реализовано с файлами и каталогами. Заранее благодарю. |
Код:
@Echo Off Цитата:
Чтобы не напрягало, сделал просмотр текущего года и предыдущего (актуально в начале года) Если, как разовая акция и нужно несколько предыдущих лет, то измените Set /A YYYY1=%YYYY2%-1 -1 на количество предыдущих годов. |
Вложений: 1
megaloman, спасибо вам огромнейшее!!! :Beer: :Beer: :Beer:
Ваш скрипт отлично работает, все "Как доктор прописал!!!". Прописал только путь к главной директории, далее скрипт обработал все внутренние каталоги и переместил файлы по каталогам, скрин 05: ![]() Осталось только адаптировать в алгоритм текущего сценария, но это уже "мелочи жизни". Спасибо вам еще раз огромное! Крепкого всем Здоровья и работоспособных сервисов/систем/скриптов!)) Хорошего дня!!! :) |
Время: 21:32. |
Время: 21:32.
© OSzone.net 2001-