用户在Windows批处理文件中决定超时

时间:2013-06-28 07:20:13

标签: windows batch-file timeout cmd choice

我写了一个简单的.bat文件,一次询问用户是/否问题。现在我想为它添加一个超时 - 让我们说10s。有没有简单的方法呢?

我的资料来源:

SET /P ANSWER=Do you want it (Y/N)?
IF /i {%ANSWER%}=={y} GOTO :yes
IF /i {%ANSWER%}=={yes} GOTO :yes
GOTO :no

:yes
@echo Yeah, it will be done.
GOTO :continue

:no
@echo Nope, it will not happen.
GOTO :continue

:continue
@echo And on we go

3 个答案:

答案 0 :(得分:8)

如果您使用的是Vista或更高版本,可以尝试使用choice /T:c,nn命令:

    Waits for the user to choose one of a set of choices.

    CHOICE  [ /C[:]choices ]  [ /N ]  [ /S ]  [ /T[:]c,nn ] text

           /C:choices    Specifies allowable keys.
               Default for English versions is YN
           /N            Do not display choices an ? at end of prompt string.
           /S or /CS     Treat choice keys as case sensitive.
              Up to (and including) the Resource Kit versions, use /S.
              In Windows 7 use /CS.
           /T:c,nn      Default choice to c after nn seconds.
              text      Prompt string to display.
 

答案 1 :(得分:6)

这取决于您运行的Windows版本。不同的东西运行不同的东西。

您可以尝试以下某些操作:

timeout 10

ping 0.0.0.0 -n 1 -w 10000 > nul

如果那些失败,你总是可以选择一个简单的循环(即如果选择有效)

:loop
choice /t 10 /c ynr /cs /d r /m "Do you want it (Y/N)?"
if errorlevel 3 goto :loop
if errorlevel 2 goto :no
if errorlevel 1 goto :yes

:yes
@echo Yeah, it will be done.
GOTO :continue

:no
@echo Nope, it will not happen.
GOTO :continue

:continue
@echo And on we go

答案 2 :(得分:1)

我会从提示中查看choice /?