[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [分享]批处理连续延迟时间

1,理论上每段延迟时间最大为24小时。
2,理论上每段延迟时间最小为0.01秒即10ms。
3,延迟时间单位为0.01秒即10ms。
4,理论上总延迟时间最大为248天。
5,在本人机器上(xp sp3系统,amd双核3.0G,内存4G),100次测试,时间误差均小于0.01秒即10ms。
6,标签 :Hanye 部分为延迟部分主代码。
7,要求 %time% 的输出格式示例为13:47:39.09。
8,用法:call:标签,从0开始的顺序数列,以0.01秒即10ms为单位的总延迟时间
  1. @echo off&setlocal enabledelayedexpansion
  2. echo.设置延迟起点
  3. call:Hanye,0,0
  4. echo.延迟3秒.开始时间%time%
  5. call:Hanye,1,300
  6. echo.再延迟30秒(总33秒).当前时间%time%
  7. call:Hanye,2,3300
  8. echo.再延迟300秒(总333秒).当前时间%time%
  9. call:Hanye,3,33300
  10. echo.后面类推.结束时间%time%
  11. pause&exit
  12. :Hanye
  13. for /f "tokens=1-4 delims=:. " %%a in ("%time%") do (
  14. set Tb=%%b&set Tc=%%c&set Td=%%d&set Ye%1=%%a&set/a Han=%1-1
  15. for %%e in (!Han!) do if !Ye%1! lss !Ye%%e! set/a Ta+=1
  16. for %%e in (b c d) do if !T%%e:~0^,1!==0 set T%%e=!T%%e:~1!
  17. set/a "Gu%1=360000*(%%a+24*Ta)+Tb*6000+Tc*100+Td",Xing=Gu0+%2)
  18. if !Gu%1! lss %Xing% goto:Hanye
复制代码

[ 本帖最后由 hanyeguxing 于 2010-6-8 23:32 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

思路是好的,可是这样延迟是比较费资源的

TOP

师傅,你给我出的这个题,在我写代码的过程里发现一个有趣的现象。
比如说我们要延迟2秒做某事,我看论坛的代码一般是ping 127.1 -n 2 >nul,我也一直是这样写的。但是看下这个代码会发现实际延迟只是1秒+误差,
  1. @echo off
  2. echo %time%
  3. ping 127.1 -n 2 >nul
  4. echo %time%
复制代码
努力学习,努力挣分

TOP

回复 3楼 的帖子

  1. @echo off
  2. echo %time%
  3. ping 127.1 -n 3 >nul
  4. echo %time%
复制代码
在你想延迟的时间上加1就对了 误差非常小 但不是没有 时间越长误差就越大

TOP

回复 3楼 的帖子

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

还没见过这帖子,谢谢谢谢
努力学习,努力挣分

TOP

返回列表