2014-09-01 49 views
1

我想知道是否有一个命令自动退出一个批处理文件,如果它被孤立了一定的秒数。如果空闲时自动退出批处理的命令?

我做了一个类似于here的小程序。我使用的大多数编码都显示在页面上,但它基本上会询问您要访问的网站,并选择其中一个选项可打开一个带有所需页面的浏览器窗口。但是,选择所列网站之一后,程序将显示选项以退出或返回顶部。这是我通常忘记的地方,直到我关闭了我正在查看的任何内容,并且该批次仍然在后台打开。

因此,无论如何设置一个自动退出计时器,而不会中断用户,并且不限制返回并选择另一个选项的能力?

谢谢!

+0

http://stackoverflow.com/a/4340058/548036的答案@ daniel11可以有答案(TIMEOUT/T 3600/NOBREAK) – 2014-09-01 19:45:58

+0

不,你不想'超时',你想'选择'。:http://stackoverflow.com/questions/12331428/how-to-ask-for -batch-file-user-input-with-a-timeout – indiv 2014-09-01 19:47:51

+0

Y你也可以多线程和强制终止。但是,这将是一个复杂的任务 – Monacraft 2014-09-02 00:00:50

回答

2

可以使用choice命令,而不是set /p

ž是一个自动选项,您可以用另一个字母。

/D是时间通过时的默认选项。 /T是等待的时间(这种情况下,5秒)。在cmd中

choice /n /c:xbe /T 5 /D x /M "Make your selection" 
if errorlevel 1 exit 
if errorlevel 2 goto :option_b 
if errorlevel 3 goto :option_e 

更多信息类型:

choice /n /c:zbe /T 5 /D x /M "Make your selection"

然后用它在你的代码 choice /?

+0

嘿@ Honguito98很高兴在这里见到你。 – npocmaka 2014-09-01 21:09:08

+0

我从来不知道选择命令。感谢您的输入! – 2014-09-02 06:56:35

+0

我通过实验发现,“if errorlevel”语句的顺序很重要。经过一些试验和错误之后,我把它做得很漂亮。再次感谢。 – 2014-09-02 07:28:34

1

请把这里

set /p udefine= 

这条线是等待B或E

既然你只需要选择一个网站后退出该批处理文件一看,你可以擦这些行

echo Type [e] to exit or [b] to go back and select another site. 
echo. 
set /p udefine= 
echo. 
echo *************************************************************** 
if %udefine%==b goto top 
if %udefine%==e goto exit 
:exit 
cls 
echo *************************************************************** 

而且这条线(最后一个)之前

pause