windows批处理文件中的用户决策超时



我编写了一个简单的.bat文件,该文件曾一度向用户询问是/否问题。现在我想增加一个超时,比如说10秒。有简单的方法吗?

到目前为止我的来源:

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

这取决于您运行的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

如果您在Vista或更高版本上,您可以尝试choice /T:c,nn命令:

等待用户从一组选项中选择一个。CHOICE[/C[:]选项][/N][/S][/T[:]C,nn]text/C: choices指定允许的密钥。英文版本的默认值为YN/N不显示选项和?在提示字符串的末尾。/S或/CS将选择键视为区分大小写。最多(包括)Resource Kit版本,请使用/S。在Windows 7中使用/CS。/T: c,nn在nn秒后默认选择c。text提示要显示的字符串。

我会从提示中签出choice /?

相关内容

  • 没有找到相关文章