Решим следующую задачу - нужно создать архив файлов, находящихся в каталоге C:\Program Files\FAR. Имя архивного файла должно состоять из текущего времени (часы.минуты.секунды - ЧЧ.ММ.СС.rar), и помещен он должен в новый каталог, имя которого должно состоять из текущей даты (день.месяц.год - ДД.ММ.ГГГГ). Для архивирования будем использовать архиватор RAR. Формат запуска для создания архива:
RAR a -r < путь и имя архива > < Путь и имя архивируемых данных >
a - команда создания архива.
-r - ключ, определяющий архивирование подкаталогов (т.к. в исходной папке есть подкаталоги).
Таким образом, для решения задачи нужно правильно создать имена и пути для RAR. Для чего воспользуемся следующими факторами:
· В командных файлах можно получить доступ к текущей дате и текущему времени - переменные %DATE% и %TIME%
· В командных файлах можно создавать временные переменные с помощью команды SET.
· Значение временных переменных может быть сформировано на основе %DATE% и %TIME% путем пропуска и (или) замещения их частей с помощью все той же команды SET.
Дата, получаемая из переменной %DATE% при стандартных настройках региональных установок выглядит следующим образом:
Пн 21.01.2005 - День недели(2 символа)-Пробел-дата(10 символов)
Для примера, создадим каталог командой MD < имя каталога >.
Создаем в памяти временную переменную VDATE и присваем ей значение переменной окружения DATE, без первых 3-х символов - 20.01.2005:
set VDATE=%date:~3%
Создаем каталог на диске C:, имя которого = текущая дата из переменной VDATE:
MD C:\%VDATE%
После выполнения этой команды на диске C: будет создан каталог с именем 20.01.2005
Время, получаемое из переменной %TIME%:
14:30:59.93 - Часы, минуты, секунды, сотые доли секунды.
Сотые доли - это в имени файла архива, пожалуй, лишнее. Создаем временную переменную VTIME и присваиваем ей текущее время без последних 3-х символов
set VTIME=%time:~0,-3%
Теперь VTIME = 14:30:59, но знак ": " в имени файла использовать нельзя, поэтому заменим его на точку.
set VTIME=%VTIME::=.%
Переменная VTIME примет значение 14.30.59 Для имени файла сойдет.
Запустим архиватор:
rar a -r C:\%VDATE%\%VTIME%.rar "C:\Program files\far\*.*"
Теперь можно создать командный файл с содержимым:
set VDATE=%date:~3%
md c:\%VDATE%
set VTIME=%time:~0,-3%
set VTIME=%VTIME::=.%
rar a -r C:\%VDATE%\%VTIME%.rar "C:\Program files\far\*.*"
Такой командный файл можно выполнять через автозагрузку, или как часть скрипта, при входе пользователя в домен, либо с помощью планировщика в заданное время, и у вас всегда будут в наличии упорядоченные по времени архивы критических данных.