Facebook Twitter VK
MailОбратная связь

E-Mail, телефон

CallВызов мастера

Sergey23-11-2016


Простой способ получить в командном файле Windows значение даты или времени это использование переменных %DATE%, %TIME%

set curdatetime=%DATE%_%TIME%

echo %curdatetime%

Вывод:

23.11.2016_14:48:38,91

Поинтереснее. Заменим точку в дате на "-":

set curdate=%date:.=-%

echo %curdate%

Вывод:

23-11-2016

Или вообще на пустышку:

set curdate=%date:.=%

echo %curdate%

Вывод:

23112016

Это уже можно использовать для включения в имя файла для регулярного архива. Но сортировать такие файлы неудобно, надо бы год сначала, потом месяц, а потом уже день. Но не наоборот. Есть решение и тут:

set YYYY=%date:~6%

set MM=%date:~3,2%

set DD=%date:~0,2%

set curdate=%YYYY%%MM%%DD%

echo %curdate%

Вывод:

20161123

Ну и самый крутой способ - разбить сразу дату и время по элементам:

for /f "tokens=1-7 delims=/-:., " %%a in ( "%DATE: =0% %TIME: =0%" ) do (

set now=%%c%%b%%a_%%d%%e

)

echo %now%

Вывод:

20161123_1448

При этом способе все значения даты-времени оказываются в переменных:

%%a - день

%%b - месяц

%%c - год

%%d - часы

%%e - минуты

%%f - секунды

%%g - сотые

Конструкция "%DATE: =0% заменяет лидирующий пробел (если он есть как например в дате " 3.10) на "0"

Информация почерпнута с сайта

http://forum.script-coding.com/viewtopic.php?id=4106

Хотя, предполагаю, что это не оригинал.