![]() |
BAT-ник для архивации файлов в нескольких папках
Здравствуйте,
прошу помощи форумчан, т.к. я не могу придумать такой батник, опыта совсем минимум в этом. Итак задача: есть папка DATA, в ней много папок с названиями в 7 цифр - это серийные номера, они не по порядку, разнобой и в общем всяко разно, но обязательно 7 цифр и только 7 символов. в каждой папке есть несколько файлов с именем вида серийник-yymmdd.bin Необходимо, чтобы архиватор создавал архивы отдельно для каждого серийника, на какой-либо год, например за 2020. Нужно за один год конкретный, на следующий год можно будет просто цифру в батнике поменять. Желательно чтоб результат-архив имел имя серийник-yy.zip (или rar как получиться не знаю, 7z на той машине нету) Результат может оставаться в этой же папке или складываться в какую-либо одну - не принципиально. |
Цитата:
Серийник в имени папки и серийник в имени файла это одно и то же? Вариант Код:
@Echo Off |
Здравствуйте, спасибо вам, попробую ваш вариант.
Да, серийник в имени папки и серийник в имени файла это одно и то же. Встречаются варианты типа 0035700, 0082444, 0135520, 0156859, 0389132, 0489128, 1285774, 2020567, 9014123 У вас в батнике архивируются все года? я не понял. или где мне можно задать архивировать 19-й год или 20-й? Объясню: валяются в папках куча файлов например с 19 года по текущее время. Мне нужно заархивировать например отдельно 19-й год, остальные не трогать пока. Потом по обстоятельствам например 20-й, опять же остальные не трогать. |
Marker13,год указывать не надо. При повторном запуске обновятся только архивы с изменёнными файлами. Если хочется упаковать конкретный год, можно это указать в маске файлов, непример, для 13 года
Set "Mask=-13[0-1][0-9][0-3][0-9]\.bin$" Еще раз пытаюсь уточнить: в имени папки только серийник или еще имеются символы, в каком месте имени? |
Ааа теперь понял что это за маска, она берет часть имени после "-"
Да, мне нужно упаковать только конкретный год. Про уточнение, например: В DATA будет папка 0035700, в ней будут файлы за январь 22года: 0035700-220103.bin 0035700-220110.bin 0035700-220117.bin или другая папка 0135520, в ней будут соответственно 0135520-220103.bin 0135520-220110.bin 0135520-220117.bin и т.д. различных папок порядка 1000 понедельно или ежедневно - не важно. Повторный запуск не требуется для обновления файлов в архивах т.к. по окончании соответствующего периода (дня или недели) файл больше не изменяется никогда. Файлы которые были заархивированы нужно удалить после архивации, где поставить соответствующий ключ? И еще возник вопрос если архиватору будут попадаться папки с название отличным от серийный номер в 7 цифр (просто сторонняя информация, которая не требует архивации) - как он отреагирует? или лучше убрать ее пока временно? |
Marker13, после уточнения задачи, гораздо более быстрый вариант
Код:
@Echo Off Цитата:
В подпапках с серийниками не будут архивироваться файлы, которые не начинаются с серийник-yy и не имеют расширение .bin |
Оооо, работает. Большое спасибо.
|
Время: 18:36. |
Время: 18:36.
© OSzone.net 2001-