Пакетный файл приурочил напоминание - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь получить файл .bat для запуска всплывающего окна с напоминанием об ограничениях на рабочем компьютере (ОС Windows 7).Я не могу использовать планировщик задач Windows из-за этих ограничений, поэтому мне нужна проверка времени для запуска внутри самого пакетного файла.

В настоящее время у меня есть следующее:

@echo off
:check
if "%time%"=="09:51:00.00"
msg user42 Test Reminder
Timeout /t 20 /nobreak
GOTO :Check

Проблемакажется, с «если» в третьей строке.так как остальная часть кода работает с этой удаленной строкой.

Любой совет будет высоко ценится.

1 Ответ

0 голосов
/ 29 января 2019

Нам нужно было бы манипулировать вашей переменной времени, чтобы эта работа работала, как и ожидалось, но мы на самом деле не хотим изменять системные или пользовательские переменные среды.Поэтому мы создаем свои собственные.

Сначала мы проверяем, чтобы значение часового времени всегда имело 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...