1

在制作批处理文件时,我还没有学会如何让问题覆盖倒计时。我的意思是,假设你有一个这样的提问序列:

set /p LeavingQuestion1= 

if %LeavingQuestion1%==15 goto Question2

有没有一种方法可以让我对这个问题进行倒计时,所以如果他们在 5 秒内没有回答问题,它会转到 MainMenu。

4

1 回答 1

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

替换abcz为可能的选择。每个字母长 1 个。例如,如果你做了 abcz,它会要求 a、b、c 或 z。请注意,您可能想要隐藏 z,因为如果时间用完,那将是自动选择的答案。

如果等待超过 5 秒,则使其/t 5 /d z选择。z

输出的方式choice是它使%errorlevel%选择的选项数量。因此,如果时间用完了,则第四个答案 z 变为%errorlevel%。这就是为什么它检查错误级别为 4 的原因。此外,如果您想检查第一个选择(在这种情况下a),您可以执行if %errorlevel%==1if %errorlevel%==2第二个选择 (b),等等。

抱歉,这有点令人困惑;做choice /?一些更多的信息。

于 2013-07-10T13:23:18.253 回答