Утилита
date.zip (38.5 КБ) из комплекта UnxUtils
позволяет получить данные о дате времени в любом формате
независимо от региональных настроек.
Примеры использования:
Показать текущие ГГГГ-ММ-ДД
Код:
date.exe +"%%Y-%%m-%%d"
(%%y (строчная) - Краткий двузначный формат года)
Записать дату/время в переменную в нужном формате
Код:
for /f "tokens=*" %%i in ('date.exe +"%%Y-%%m-%%d %%H:%%M:%%S"') do set timestamp=%%i
echo %timestamp%
Записать текущие значения даты/времени в переменные
Код:
for /f "tokens=1,2,3,4,5,6* delims=," %%i in (
'date.exe +"%%Y,%%m,%%d,%%H,%%M,%%S"') do (
set yy=%%i& set mo=%%j& set dd=%%k& set hh=%%l& set mm=%%m& set ss=%%n)
echo %yy% %mo% %dd%
Записать значения даты/времени
файла в переменные
Код:
for /f "tokens=1,2,3,4,5,6* delims=," %%i in (
'date.exe -r test.txt +"%%Y,%%m,%%d,%%H,%%M,%%S"') do (
set yy=%%i& set mo=%%j& set dd=%%k& set hh=%%l& set mm=%%m& set ss=%%n)
echo %yy% %mo% %dd%
[+] Для сравнения значений переменных месяца, дня и т.д. необходимо удалить ведущие нули
Код:
for %%V in (%%m %%d) do (set /a %%V=1!%%V!-100)
Теперь не будет возникать ошибок при мат. операциях (set /a=...) с этими переменными