1

У меня уникальная ситуация, когда мне нужна следующая структура папок (Windows)

X:\LOGS\PRIMARY\YEARMONTHDAY

например,

X:\LOGS\HS\20121010

Папки создаются каждое утро.

По сути, я бы хотел сжать содержимое подкаталога date и поместить его в этот каталог. Должно ли это быть сделано с помощью 7z или с помощью «FORFILES»?

1 ответ1

0

Если я правильно понимаю, вы хотите взять определенную папку, созданную в формате ГГГГММДД, и сжать содержимое. Созданный zip-файл также должен быть помещен в эту папку.

На самом базовом уровне вы можете выполнить это с помощью команды, подобной следующей

"c:\Program Files\7-Zip\7z.exe" a x:\Logs\HS\20121010\20121010.zip X:\Logs\HS\20121010\*

ПРИМЕЧАНИЕ. Для использования вышеуказанной команды необходимо установить 7-zip.

С помощью приведенной выше команды вам придется вручную заполнять ГГГГММДД каждый раз, когда вы хотите заархивировать новую папку с датами.

Это может быть сделано еще дальше, и вы можете изменить команду, чтобы использовать текущий ГГГГММДД для сегодняшней даты. Ключом к этому является использование переменной% date% в DOS. Вы можете прочитать больше информации об этой переменной, набрав set /? , Чтобы отформатировать дату как ГГГГММДД, нам нужно взять подстроку переменной %date% следующим образом:

echo %date:~10,4%%date:~4,2%%date:~7,2%

Приведенная выше команда должна вывести дату в формате ГГГГММДД.

Наконец, мы можем объединить эти две команды, чтобы сгенерировать однострочную команду, которая заархивирует все файлы в каталоге с сегодняшней датой (в формате YYYMMDD).

"c:\Program Files\7-Zip\7z.exe" a x:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\%date:~10,4%%date:~4,2%%date:~7,2%.zip X:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\*

Еще один шаг можно предпринять, чтобы автоматизировать это, добавив вышеуказанную команду в качестве запланированной задачи в Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .