Board logo

标题: [其他] 批处理怎样判断等待了几秒钟? [打印本页]

作者: fengyun530    时间: 2011-5-21 18:17     标题: 批处理怎样判断等待了几秒钟?

批处理里有没有这样的代码。效果是:判断用户是否有键盘输入,如果没有输入任何字符,等待几秒后自动跳转到某个语句上。

这里跳转部分可以用GOTO。但是如果判断等待了几秒钟。这个判断代码该怎么写。记得VBS好象可以。但是是否可以不外接VBS,靠纯批处理来完成,可否。谢谢!
作者: fengyun530    时间: 2011-5-21 18:35

我试过了用PING方法,但是和我要的效果也不一样的
代码如下:
  1. @echo off
  2. ping -n 3 127.1>nul
  3. set /p i=请输入字母
  4. if /i "%i%"=="A" goto :goon
  5. echo woaini
  6. pause
  7. exit
  8. :goon
  9. echo 您输入了字母%i%
  10. pause>nul
复制代码
只能延时,但是无法在请输入字母那里等待3秒钟,然后自动跳转。
作者: batman    时间: 2011-5-21 18:48

choice。。。
作者: fengyun530    时间: 2011-5-21 19:17

恩。知道了。谢谢!

CHOICE /T 秒数,还有SLEEP。不过这2个都需要外部程序支持。在纯DOS下如果没有CHOICE。EXE或WSC的话就会提示不是内部或外部命令
作者: CrLf    时间: 2011-5-21 19:29

可以用start /b开启子进程,父进程负责延时,子进程判断用户是否有键盘操作。
这个在旧帖子里面有的
作者: techon    时间: 2011-5-21 19:36

choice。。。

XP下没有这个命令 用的话上dos里找一个
作者: fengyun530    时间: 2011-5-21 23:57

可以用start /b开启子进程,父进程负责延时,子进程判断用户是否有键盘操作。
这个在旧帖子里面有的
zm900612 发表于 2011-5-21 19:29


我找了4个关键字:延时、等待、子进程、父进程。都没有你说的这个帖子。不知道是不是要把“可以用start /b开启子进程,父进程负责延时,子进程判断用户是否有键盘操作。”这里的所有字都做为关键字查找一遍呢。或者组合,以2个字组合为例,那么就有15!/(15-2)!种排列情况。那我该找到什么时候才能找到我要的帖子啊。呵呵!望直接告诉我那个帖子在哪吧,谢了。
作者: applba    时间: 2011-5-21 23:59

6# techon


win7下又有了……
作者: CrLf    时间: 2011-5-22 14:35

一个倒数十秒备份、可以任意键中断的bat:
  1. @echo off
  2. echo %cmdcmdline%
  3. if "%~1"=="按任意键退出" goto :%1
  4. >"%temp%\.sub" cd.
  5. start "" /b %0 按任意键退出
  6. set 退格键=
  7. for /l %%a in (10 -1 1) do (
  8.      set /p =%退格键%%%a 秒后开始备份文件... [按任意键退出] <nul
  9.      if not exist "%temp%\.sub" exit
  10.      ping -n 2 127.1 >nul
  11. )
  12. echo,
  13. echo 备份完成。
  14. echo 按任意键退出...
  15. exit
  16. :按任意键退出
  17. pause >nul
  18. del "%temp%\.sub"
  19. exit
  20. pause
复制代码





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