Войти

Показать полную графическую версию : [решено] Ожидание нажатия клавиши в течении N секунд иначе выход


wlad1164
25-12-2018, 11:47
Добрый день!
Помогите пожалуйста решить задачку, необходимо чтобы при выполнении 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
@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@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
Использую самописанную утилиту inkeys.exe
http://forum.oszone.net/thread-273415.html




© OSzone.net 2001-2012