Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Ожидание нажатия клавиши в течении N секунд иначе выход (http://forum.oszone.net/showthread.php?t=338416)

wlad1164 25-12-2018 11:47 2848146

Ожидание нажатия клавиши в течении N секунд иначе выход
 
Добрый день!
Помогите пожалуйста решить задачку, необходимо чтобы при выполнении bat выводилось сообщение "нажмите клавишу" с таймером
Если в течении указанного времени пользователь не нажмет клавишу то ничего не делать, если нажмет, выполнить команду
Код:

shutdown.exe /a
Код:

                dir D:\VIDEO\writing* /a-d 2>nul >nul && goto:WritingYes
                        Set Record=No
                        shutdown.exe -r -f -t 60
                goto:WritingEND
        :WritingYes
                Set Record=Yes
        :WritingEND

Здесь нужно проверить если Record=No то вывести сообщение и ждать в течении 60 сек нажатия клавиши, при нажатии клавиши выполнить shutdown.exe /a

Именно там т.к. после WritingEND идет еще большой кусок кода...

megaloman 25-12-2018 22:17 2848271

Вариант 1
Код:

@Echo Off
cls
        Set /A PauseSec=60

        Set /A Record=0
        >nul 2>&1 Dir D:\VIDEO\writing* /a-d && Set /A Record=1
        If %Record% EQU 1 GoTo :Continue

        Echo %Time% Через %PauseSec% сек. компьютер будет отключен.
        CHOICE /C YN /T %PauseSec% /D N /M "Y-Продолжить работу,  N-Выключить"
        If %ErrorLevel% EQU 2 Echo shutdown.exe /r /f /p &GoTo :Eof

        :Continue
        Echo ------ Остальной код
pause
GoTo :Eof

Убрать для боевой работы выделенное Echo
Вариант 2
Код:

@Echo Off
cls
        Set /A PauseSec=60

        Set /A Record=0
        >nul 2>&1 Dir D:\VIDEO\writing* /a-d && Set /A Record=1
        If %Record% EQU 1 GoTo :Continue

        Echo shutdown.exe /r /f /T %PauseSec%

        Echo %Time% Через %PauseSec% сек. компьютер будет отключен.
        CHOICE /C YN /T %PauseSec% /D N /M "Y-Продолжить работу,  N-Продолжить выключение"
        If %ErrorLevel% EQU 1 Echo shutdown.exe /a
        If %ErrorLevel% EQU 2 GoTo :Eof

        :Continue
        Echo ------ Остальной код
pause
GoTo :Eof

Убрать для боевой работы выделенное Echo

Опиум 16-01-2019 18:15 2852690

Использую самописанную утилиту inkeys.exe
http://forum.oszone.net/thread-273415.html


Время: 21:23.

Время: 21:23.
© OSzone.net 2001-