![]() |
Архивация по маске
привет всем.
имеем 1) 7Zip 2) Структуру папок - год/месяц/дата/заказ(ы) задача: 1) необходимо запаковать с помощью скрипта все каталоги поотдельности, лежащие внутри папки "дата", - заказ001 (далее заказ002, 003....) в архив с сохранением имени "заказ001.7z" (002,003....) 2) удалить заархивированные папки, чтобы остались только архивы должны получить структуру типа - год1/месяц1/дата1/заказ001.7z год2/месяц2/дата2/заказ001.7z ну и так далее, собственно превратить в архивы все что ниже папки "дата" в общем то вот этот скрипт Код:
for /D %%i in (*.*) do "C:\Program Files\7-zip\7z.exe" a "%%i.7z" -mx9 "%%i" |
Код:
forfiles /S /P c:\temp /C "cmd /c if @isdir==TRUE (echo @relpath | findstr /R \"\.\\.*\\.*\\.*\\.*\"> nul && 7z a -sdel @path.zip @path\* && rmdir @path)" |
формат даты одинаков везде, типа "01.02.16"
|
|
1 февраля 2016 года.
формат структуры таков: 2015\февраль\01.02.15\заказ001 2015\февраль\01.02.15\заказ002 2016\апрель\01.04.16\заказ001 типа такого. формат названия папки в виде даты такой) в общем подкорректировал скрипт следущющим образом, работает Код:
forfiles /S /P H:\SHARE2\test /C "cmd /c if @isdir==TRUE (echo @relpath | findstr /R \"\.\\.*\\.*\\.*\\.*\"> nul && c:\Progra~1\7-zip\7z.exe a -sdel @path.7z -mx9 @path\* && rmdir @path)" еще один момент, кроме папок с именами "заказов" рядом лежат еще просто файлы, типа *.jpg и др.. как в этот скрипт добавить команды, чтобы все эти файлы архивировались поотдельности в каждый архив? типа файл: "2015\февраль\01.02.15\картинка001.jpg" стал отдельным архивом. и хорошо бы перед удалением исходной папки архиватор тестировал архив на ошибки, но это необязательно.) |
Skylear, извиняюсь, решил, что подразумевается день месяца, а не дата полностью, а рекомендация моя касалась всего пути
Цитата:
Цитата:
только надо понимать, что в таком случае процессы архивации и удаления будут разнесены во времени и совершенно независимы друг от друга |
вот накалякал типа такого скрипта, выполняется вроде.
Код:
Set BoxIn="H:\SHARE2\Архивы проектов дизайнеров\2016\Январь" 1) разархивирует все архивы, которые есть в данной папке и ее подпапках 2) удаляет эти архивы, оставляя только файлы 3) делает архивацию папок, лежащих в "датах" (но одного месяца, в котором лежит скрипт) 4) удаляет исходники, оставляя архивы 5) архивирует оставшиеся файлы форматов psd и tif, которые найдет в папке и подпапках 6) удаляет файлы psd и tif подправьте, если что-то коряво написано. хотелось бы еще скрипт запускать из любого места, лишь с указанием пути в переменной сверху, (никак не разберусь как это сделать), а так - его надо обязательно класть в папку "месяц" ("декабрь", например), чтобы работал (если положить выше в папку "год", то начнет шерстить в других папках "месяц" (типа "январь" и "март" и все еще оставшиеся, если они есть) - а это неудобно) |
Время: 02:47. |
Время: 02:47.
© OSzone.net 2001-