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