Нам нужно было бы манипулировать вашей переменной времени, чтобы эта работа работала, как и ожидалось, но мы на самом деле не хотим изменять системные или пользовательские переменные среды.Поэтому мы создаем свои собственные.
Сначала мы проверяем, чтобы значение часового времени всегда имело 2 цифры, заменив пробел на 0
, поскольку только однозначное время (1,2,3..9) будет иметь ведущее значение.пространство.затем мы удаляем :
, чтобы сделать его единым сопоставимым числовым значением, затем мы просто делаем совпадение, чтобы увидеть, больше или равно время 0951 (09:51 утра), и если это так, мы проверяем, является ли ономеньше чем 0952 (09:52 утра), то есть время должно быть 09:51 в секунду, а не 09:52 или больше.
Теперь мы запускаем скрипт каждые 50 секунд, который будет попадать в каждую минуту независимо от того,если мы оставим его на 20 секунд, он будет предупрежден 2 или 3 раза.
@echo off
:check
set mytime=%time: =0%
set mytime=%mytime::=%
if "%mytime:~0,4%" GEQ "0951" if "%mytime:~0,4%" LSS "0952" msg user42 Test Reminder
Timeout /t 50 /nobreak>nul
GOTO :Check