CMD/BAT: работа с датой и временем

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:| :) :wink: :D :lol: :( :cry: 8) :o :oops: :? :x :P :evil: :twisted: :roll: :!: :?: :idea: :arrow: :mrgreen:
Ещё смайлики…

Markdown is OFF

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: CMD/BAT: работа с датой и временем

CMD/BAT: работа с датой и временем

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: работа с датой и временем в командной строке


Вернуться к началу