Board logo

标题: [其他] [已解决]批处理怎样设置执行命令超时? [打印本页]

作者: garyng    时间: 2011-8-14 17:47     标题: [已解决]批处理怎样设置执行命令超时?

本帖最后由 garyng 于 2011-8-15 20:13 编辑

我有一个问题~
能不能让 set /p a= 在等待用户输入时,等待时间超过一定的时间就执行下一个命令?
作者: mxxcgzxxx    时间: 2011-8-14 19:11

当然用 set/p 是没办法的,因为他会停止下所有的工作
建议你换个别的可以输入的命令,
记得这个问题被问过,自己找找吧
作者: ArdentMan    时间: 2011-8-15 01:28

本帖最后由 ArdentMan 于 2011-8-15 01:47 编辑

实现起来相当麻烦(密码是m,记得按回车)
  1. @Echo Off
  2. If Defined Flag Goto Next
  3. ::请将下面的空格换成TAB制表符
  4. Set "Tab= "
  5. For /L %%I In (1,1,92) Do Call,Set "tg=%%tg%%"
  6. Set "Flag=a"&Start /b "" %0
  7. For /L %%j In (1,1,500) Do Echo>Nul
  8. For /L %%i In (10,-1,1) Do (
  9.   If Not Exist "%Temp%\bathome" (
  10.     2>Nul Echo %Tab%%tg%&Set /p= <Nul
  11.     Set /p=%tg:~,20%请在%%i秒内输入密码<Nul
  12.     Echo,&Set /p=密码?<Nul
  13.     For /L %%j In (1,1,4000) Do Echo>Nul
  14.   )
  15. )  
  16. If Not Exist "%Temp%\bathome" TaskKill /f /im cmd.exe>Nul
  17. Exit
  18. :Next
  19. Echo,&Set /p Str=密码?
  20. If "%Str%" EQU "m" Cls&Echo 密码正确&Cd.>"%Temp%\bathome"
  21. Pause>Nul
  22. Del "%Temp%\bathome" 2>Nul&Exit
复制代码

作者: lfoqtal    时间: 2011-8-15 08:58

回复 3# ArdentMan


    但也发现只有一次输入密码的机会能不能让他有三次机会?
作者: Hello123World    时间: 2011-8-15 09:46

set /p ardentman实现了,用个choice更省事:
  1. @echo off
  2. CHOICE /T 10 /C:yn /CS /D y
  3. If ErrorLevel 2 goto n
  4. If ErrorLevel 1 goto y
  5. :y
  6. echo 10秒内没选择就显示这个
  7. pause&exit
  8. :n
  9. echo You choice n,good.
  10. pause>nul
复制代码

作者: garyng    时间: 2011-8-15 20:12

谢谢~麻烦你们了~
作者: xiaoququ1    时间: 2012-6-21 12:45

就是这样的东西
我想2秒超时以后自动刷新当前时间,也就是自动选择0

实在不知道怎么写啊=。=
作者: garyng    时间: 2012-6-22 11:16

回复 7# xiaoququ1


    请勿挖坟。。那么就的的东东你也挖来回复?!
另开主题 自己问问呗~




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2