Board logo

标题: [数值计算] 求助批处理倒计时出现延迟如何解决? [打印本页]

作者: ygqiang    时间: 2016-7-7 15:42     标题: 求助批处理倒计时出现延迟如何解决?

本帖最后由 pcl_test 于 2016-7-7 19:39 编辑

批处理倒计时问题。如果设置1小时以上,最终会延迟30分钟左右。
比如输入1-20,实际延迟时间会延迟30分钟左右。这是啥原因。

1、每次都先输入倒计时间隔。比如输入0-20,就是倒计时20分钟。输入2-08,就是倒计时2小时8分钟
类似0-20,2-08,这种格式。xx-aa,xx是小时、aa是分钟。
2、然后实时显示:剩余的倒计时时间
  1. @echo off & setlocal enabledelayedexpansion
  2. cls
  3. set /p t=倒计时间隔(比如1小时5分钟,输入格式:1-05)
  4. set /a "t=%t:-=*3600+(1%-100)*60"
  5. set r=%t%
  6. echo 倒计时所需的秒数
  7. for /l %%i in (%t%,-1,0) do (
  8. cls
  9. set /a m=r/60
  10. set /a s=r%%60
  11. set m=00!m!
  12. set s=00!s!
  13. echo 倒计时进行中:[!m:~-2!分!s:~-2!秒]
  14. set /a r-=1
  15. ping 0 -n 2 >nul
  16. )
  17. echo 倒计时时间到!
  18. cls
  19. echo,运行某个程序
  20. pause
复制代码

作者: flyinnet9    时间: 2016-7-7 17:00

  1. @echo off
  2. set /p t=倒计时间隔(比如1小时5分钟,输入格式:1-05)
  3. for /f "tokens=1-2 delims=-" %%a in ("%t%") do (
  4.   set /a h=%%a,m=1%%b-100
  5. )
  6. set /a s=h*3600+m*60
  7. cls
  8. echo.倒计时...
  9. timeout /nobreak /t %s%
复制代码

作者: ygqiang    时间: 2016-7-7 17:04

问题解决。。
  1. @echo off & setlocal enabledelayedexpansion
  2. cls
  3. set/p 延时=输入延时分钟数,然后回车(比如1小时15分钟,输入75):
  4. set/a 延时=延时*1000*60
  5. echo wscript.sleep %延时%>sleep.vbs
  6. echo 正在进行倒计时...
  7. start /wait sleep.vbs
  8. echo 倒计时时间到!
  9. cls
  10. echo,运行某个程序
复制代码

作者: ygqiang    时间: 2016-7-7 19:25

本帖最后由 ygqiang 于 2016-7-7 19:41 编辑

回复 2# flyinnet9

    timeout

xp系统下没有这个命令啊?
作者: flyinnet9    时间: 2016-7-8 09:42

回复 4# ygqiang


    2000年的xp,都16了,会生娃了,

喜欢养成的随便领养win7、win8、win10,养到16也可




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