UncleFather » 26 дек 2020 09:11, Сб
Задача 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: работа с датой и временем в командной строке
[b][size=150]Задача 1:[/size][/b]
Получить значение даты и времени в произвольном формате
[hr][/hr]
[b][size=150]Решение:[/size][/b]
[code]
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 ВНИМЕНИЕ!!! Скрипт системно-зависимый: порядок отдельных частей даты и времени зависит от текущих установок на компьютере (национальные, пользовательские настройки)
[/code]
[hr][/hr]
[b][size=150]Задача 2:[/size][/b]
Проанализировать (сравнить с заданным значением) текущее время
[hr][/hr]
[b][size=150]Решение:[/size][/b]
[code]
REM Используем раскрытие переменных с заменой подстроки - берем значение переменной TIME, производим замену пробела нулем и полученную строку сравниваем с заданной строкой времени. Так как сравнение производится лексикографически, то алгоритм выполнится корректно
if "%TIME: =0%" lss "15:00:00,00" goto end
[/code]
[b][size=130]Здесь же приведу операторы сравнения: [/size][/b]
[list][*] [b]EQU[/b] - равно;
[*] [b]NEQ[/b] - не равно;
[*] [b]LSS[/b] - меньше;
[*] [b]LEQ[/b] - меньше или равно;
[*] [b]GTR[/b] - больше;
[*] [b]GEQ[/b] - больше или равно.[/list]
Источник: [url=https://forum.script-coding.com/viewtopic.php?id=4106]CMD/BAT: работа с датой и временем в командной строке[/url]