2013-07-10 3 views
1

При создании пакетных файлов я до сих пор не научился обращать внимание на вопрос. Что я имею в виду под этим, что у вас есть задать последовательность вопрос так:Override Countdown

set /p LeavingQuestion1= 

if %LeavingQuestion1%==15 goto Question2 

Есть ли способ, которым я могу осуществить обратный отсчет времени на этот вопрос, так что если они не дают ответа на вопрос, в течение 5 секунд, он идет в MainMenu.

ответ

1

Является ли ответ 1 символом долго? Если да, то вы могли бы сделать что-то вроде этого:

REM Asks for input. You might want to add on /N to hide the prompt. 
choice /c abcz /t 5 /d z 

REM Checks if the time ran out, otherwise goes to next question... 
if %errorlevel%==4 goto MainMenu ELSE goto question2 

Replace abcz с возможными выборами. Каждый из них имеет длину 1 букву. Например. если вы сделали abcz, он попросил бы a, b, c или z. Обратите внимание, что вы можете скрыть z, потому что это будет ответ, который будет автоматически выбран, если у вас закончится время.

делает выбор z, если он ждет более 5 секунд.

Способ вывода choice составляет %errorlevel% номер выбора, который был выбран. Поэтому, если у него закончилось время, тогда z, 4-й ответ, станет %errorlevel%. Именно поэтому она проверяет ERRORLEVEL быть 4. Кроме того, если вы хотите, чтобы проверить первый выбор (в данном случае a), вы могли бы сделать if %errorlevel%==1 и if %errorlevel%==2 для второго варианта (б) и т.д.

Извините, если это было немного запутанно; сделайте choice /? для получения дополнительной информации.

+0

Это действительно помогло! – user2507295