在制作批处理文件时,我还没有学会如何让问题覆盖倒计时。我的意思是,假设你有一个这样的提问序列:
set /p LeavingQuestion1=
if %LeavingQuestion1%==15 goto Question2
有没有一种方法可以让我对这个问题进行倒计时,所以如果他们在 5 秒内没有回答问题,它会转到 MainMenu。
在制作批处理文件时,我还没有学会如何让问题覆盖倒计时。我的意思是,假设你有一个这样的提问序列:
set /p LeavingQuestion1=
if %LeavingQuestion1%==15 goto Question2
有没有一种方法可以让我对这个问题进行倒计时,所以如果他们在 5 秒内没有回答问题,它会转到 MainMenu。
答案是 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%==1
和if %errorlevel%==2
第二个选择 (b),等等。
抱歉,这有点令人困惑;做choice /?
一些更多的信息。