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

Kaspersky

В командной строке Командной строки Windows (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:,=_%

Ну тут мы просто убрали из переменной переменную времени.

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

Пример скрипта использующегося для создания архивов 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
Добавить комментарий