Задача 1:
Получить значение даты и времени в произвольном формате
Решение:
Код: Выделить всё
REM Удаляем ведущие нули
set now=%DATE: =0% %TIME: =0%
REM Выбираем каждую часть времени и сортируем в нужном порядке: разбиваем строку на части по разделителям (точка ".", пробел " ", слеш "/", запятая ",", тире "-", двоеточие ":"), полученные части записываем в переменные цикла и сохраняем в нужном порядке (ГГГГММДД_ччмм)
for /f "tokens=1-7 delims=/-:., " %%a in ( "%now%" ) do (
set now=%%c%%b%%a_%%d%%e
)
REM ВНИМЕНИЕ!!! Скрипт системно-зависимый: порядок отдельных частей даты и времени зависит от текущих установок на компьютере (национальные, пользовательские настройки)
Задача 2:
Проанализировать (сравнить с заданным значением) текущее время
Решение:
Код: Выделить всё
REM Используем раскрытие переменных с заменой подстроки - берем значение переменной TIME, производим замену пробела нулем и полученную строку сравниваем с заданной строкой времени. Так как сравнение производится лексикографически, то алгоритм выполнится корректно
if "%TIME: =0%" lss "15:00:00,00" goto end
Здесь же приведу операторы сравнения:
-
EQU - равно;
-
NEQ - не равно;
-
LSS - меньше;
-
LEQ - меньше или равно;
-
GTR - больше;
-
GEQ - больше или равно.
Источник: CMD/BAT: работа с датой и временем в командной строке