Я пытаюсь создать командный файл, который будет обратный отсчет при активации и выходе из системы. Это происходит, когда пользователь больше не находится на компьютере. Я столкнулся с несколькими форумами, где люди делают это, но они выходят из системы в любое время, когда пользователь простаивает в течение x минут или секунд. То, что у меня есть, делает обратный отсчет и отключается или отменяется, и я устанавливаю его в планировщик задач, чтобы начать работу, когда компьютер простаивает. Эта часть работает нормально. Кажется, что я не могу работать правильно, - это делать только обратный отсчет, если время после 18:30 (18:30). Он работал один раз для меня, но я больше не могу работать.Batch Log Off Countdown
Итак, что мне нужно в более конкретной последовательности.
- Требуется, чтобы проверить время, чтобы убедиться, что после 6:30 вечера
- потребностей, чтобы выйти, если время еще не 6:30 вечера без взаимодействия с пользователем.
- начать сеанс последовательности, если время после 6:30 вечера
Материал ниже, кажется, работает прекрасно, как прямо сейчас.
- нажмите любую буквенную клавишу, чтобы отменить последовательность
- сила выхода из системы, если последовательность не отменяется
Вот мой код, который сейчас работает, он просто не заботится о том, какое время это.
TITLE Automatic Log Off Initiated!
mode con:cols=80 lines=1
COLOR CF
@echo off
setlocal enableextensions enabledelayedexpansion
set tm=%time%
:: Test data on lines below.
:: set tm=18:59:59.00
:: set tm=19:00:00.00
:: set tm=19:44:59.00
:: set tm=19:45:00.00
:: set tm=23:59:59.99
set hh=!tm:~0,2!
set mm=!tm:~3,2!
if !hh! LEQ 18 if !mm! LEQ 30 (
exit
)
else goto :begin
:begin
for /l %%N in (600 -1 1) do (
set /a "min=%%N/60, sec=%%N%%60, n-=1"
if !sec! lss 10 set sec=0!sec!
cls
choice /c:1ABCDEFGHIJKLMNOPQRSTUVWXYZ /n /m "Automatically Logging Off in !min!:!sec! - Press any key or move the mouse to cancel" /t 1 /d 1
if not errorlevel 1 goto :break
if errorlevel 2 goto :end
if errorlevel 3 goto :end
if errorlevel 4 goto :end
if errorlevel 5 goto :end
if errorlevel 6 goto :end
if errorlevel 7 goto :end
if errorlevel 8 goto :end
if errorlevel 9 goto :end
if errorlevel 10 goto :end
if errorlevel 11 goto :end
if errorlevel 12 goto :end
if errorlevel 13 goto :end
if errorlevel 14 goto :end
if errorlevel 15 goto :end
if errorlevel 16 goto :end
if errorlevel 17 goto :end
if errorlevel 18 goto :end
if errorlevel 19 goto :end
if errorlevel 20 goto :end
if errorlevel 21 goto :end
if errorlevel 22 goto :end
if errorlevel 23 goto :end
if errorlevel 24 goto :end
if errorlevel 25 goto :end
if errorlevel 26 goto :end
if errorlevel 27 goto :end
)
:break
shutdown /l /f
:end
exit
Я играл с ним, чтобы проверить время, используя разные времена, но он по-прежнему не работает.
Я также попытался использовать второй оператор IF, но это не сработало.
IF !hh! GTR 18 IF !mm! GTR 30 (
goto :begin
)
Любая помощь будет принята с благодарностью! Спасибо!
Ум, нет - извините. Пакетные ключевые слова нечувствительны к регистру - единственное место, где он распознает случай, - в случае * метапеременных * (переменные для управления контуром). – Magoo