CMD: Переименование файла с использованием текущей даты и времени

Приведу один пример использования, у нас есть батник который пишет лог, но что бы не получить один большой файл размеров несколько мегабайт и удобно проводить анализ, мы складываем логи по отдельным файлам.
Стандартными средствами Windows мы не можем организовать ротацию, хотя, можем, эта статья и посвящена данному вопросу. Можно попробовать использовать переменные %date% и %time%, но содержание в них запрещенных символов, просто вызовет ошибку.

В начале командного файла пишем следующий текст:
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=_%

В итоге в перемененной %_my_datetime% мы будем иметь текущую дату и время в формате не нарушающем правила именования файлов.

Если нужна просто дата то пишем следующее:
set _my_datetime=%date%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=_%

Ну тут мы просто убрали из переменной переменную времени.
лично я использую для формирования архивов DrWeb CureIt! за сутки с помощью WGET под Windows.

Вот полным пример действующего скрипта:
echo off
cls

set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=_%

C:\Install\wget.exe —no-cache -O C:\mirror\CureIT\%_my_datetime%.exe http://www.freedrweb.com/download+cureit/gr/?lng=ru

Автор: Дата: , Категория:Операционные системы, Метки: , .

Comments are closed.