Чтобы создать из командной строки файл с именем равным текущей дате и времени создадим cmd файл с таким содержимым:
rem @echo off
set dd=%DATE%
set tt=%TIME%
set /a ddd=%dd:~0,2%
IF %ddd% LSS 10 (
SET day=0%ddd%) else (
SET day=%ddd%)
set month=%dd:~3,2%
set year=%dd:~6,4%
set /a ttt=%tt:~0,2%
IF %ttt% LSS 10 (
SET hour=0%ttt%) else (
SET hour=%ttt%)
SET minute=%tt:~3,2%
SET sec=%tt:~6,2%
echo %day% %month% %year% %hour% %minute% %sec%
copy nul %day%%month%%year%_%hour%%minute%%sec%.txt
Необходимо помнить, что получение даты и времени зависит от региональных настроек Windows. Поэтому первая строка закомментирована для возможности смотреть на результат каждой команды. Рассмотрим команды.
- В переменные dd и tt получаем текущую дату и время.
- В переменную ddd из переменной с датой dd получаем теекущее число. Команда
%dd:~0,2%
значит взять из переменной dd 2 символа с начала строки (0 это первый символ строки). Например, на моем компьютере числа всегда двучначные и я не нуждаюсь в такой проверке и эта конструкция у меня заменяется на командуset day=%dd:~0,2%
- Далее с 7 по 9 строку кода идет проверка текущего числа. Если число меньше 10, то начале числа добавляем символ 0. Это надо на случай если у нас дата выглядит например так: 1.12.2010. Чтобы все составляющие даты были одинаковой длины. Тут же получаем готовую переменную day, в которой хранится значение текущего числа
- Строка 10. В переменную month из dd получаем текущий месяц. Берем два символа, начиная с третьего. Здесь можно так же как и с числом сделать проверку на меньше или больше 10. Но у меня почему-то на всех компах месяц всегда двузначный. Но этот момент надо учитывать.
- Строка 11. В переменную year из dd получаем текущий год. Для этого берем 4 символа, начиная с шестого. Вообще с какого символа брать и сколько символов надо брать, легко отследить после команд из 3 и 4 строк кода. После выполнения cmd файла смотрим какие строки выдает ОС и отсчитываем с какого символа идет число, месяц и год.
- Со строки 13 по 20 описаны аналогичные действия по получению текущего времени в переменные hour, minute и sec.
Приготовления закончены, команда в строке 22 выводит полученные значения. Если всё выводится корректно, то можно приступить к созданию файла. Команда
copy nul %day%%month%%year%_%hour%%minute%%sec%.txt
создает пустой текстовый файл 09092010_102428.txt Для создания архивов я обычно делаю чтобы год был в начале имени файла, затем месяц, а уже потом число. Это удобно для сортировки архивов.
copy nul %year%%month%%day%_%hour%%minute%%sec%.txt
Результат такой команды: 20100909_102441.txt