我写了一个简单的.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
答案 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 /?
。