Как я могу заархивировать группы файлов на основе первых х символов имени файла?

545
vixbix

У меня есть один каталог, в который выгружаются файлы журнала, таким образом:

20160701_file001.log 20160701_file002.log 20160702_file001.log ... 20160801_file001.log 20160801_file002.log 20160801_file003.log ... 

Не могли бы вы порекомендовать один цикл, который можно запустить в родительском каталоге в командной строке, который будет заархивировать все файлы только на 201607, назвав zip-файл (который будет находиться в том же месте), используя имя самого старого файла для быть на молнии?

Это даст 31 файл на июль, так как каждый день будет иметь свой собственный ZIP-файл (попытка сжать их все приводит к ошибке «слишком много файлов для архивирования»).

РЕДАКТИРОВАТЬ: Кажется, что мой этикет SuperUser еще не на пустом месте, так как я получаю комментарии по всему сайту от одного и того же пользователя, указывая мне на множество опубликованных документов "Как ..." .. Приношу извинения всем!

Пожалуйста, найдите скрипт, который я использую ниже, - это всего лишь один день за один раз, и я ищу помощь в его адаптации, например, для создания файлов журнала за целый месяц, расположенных в том же каталоге.

7z.exe a -tzip 20160731_file001.log.zip 201607*_file*.log 
1
Да, но ... обратите внимание, что [SU] не является бесплатным сервисом для написания скриптов / кодов. Если вы сообщите нам, что вы уже пробовали (включая скрипты / код, который вы уже используете) и где вы застряли, мы можем попытаться помочь с конкретными проблемами. Вам также следует прочитать [Как мне задать хороший вопрос?] (Https://superuser.com/help/how-to-ask). DavidPostill 7 лет назад 2
Спасибо за советы @DavidPostill - я изменил заданный вопрос, чтобы лучше сообщить о проблеме под рукой .. vixbix 7 лет назад 0
Ваш вопрос до сих пор не ясен. 1 /. «Это даст 31 файл на июль, так как каждый день будет иметь свой собственный ZIP-файл», а 2 / «с использованием имени самого старого файла, подлежащего заархивированию», не возможны одновременно. 31 файл не может иметь одинаковое имя. DavidPostill 7 лет назад 0
7zip не имеет функции удаления или перемещения, поэтому вам нужно написать пакет, чтобы обойти этот пробел. Вы можете легко сжать текущий месяц, используя переменную даты в DOS. Однако 1 августа запустить пакетный файл не так-то просто, чтобы сжать предыдущий месяц ... DOS не такой уж умный ... https://community.spiceworks.com/scripts/show/835-zip-7zip-files -with-date-and-move-очень-просто-и-работает ... для ручного архивирования, я просто использую `7za a 201607 201607 * .log` <- это должно сжать все ваши файлы журнала за июль в один файл ZIP , Sun 7 лет назад 0

0 ответов на вопрос