В командной строке Командной строки Windows (CMD) по умолчанию нет возможности создать файла используя текущие дату и время, для их использования необходимо сначала преобразовать в формат с использованием ограничений в имени файлов.
Стандартными средствами Windows мы не можем организовать ротацию. Можно попробовать использовать переменные %date% и %time%, но содержание в них запрещенных символов, просто вызовет ошибку.
Получаем дату и время
В начале командного файла пишем следующий текст:
1 2 3 4 5 6 | 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% мы будем иметь текущую дату и время в формате не нарушающем правила именования файлов.
Получаем только дату
Если нужна просто дата то пишем следующее:
1 2 3 4 5 6 | 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.
1 2 3 4 5 6 7 8 9 10 11 | 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 |