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

[特效代码] 批处理时钟哪里有问题?

@echo off
set a=0
set b=0
set c=0
set d=0
echo %a% %b% : %c% %d%
pause
for /l %%i in (1,1,9) do ping 1 -n 1 -w 1000>nul & %d%=%d%+1 & echo %a% %b% : %c% %d%
pause        这个哪里有问题,主要在于for

%d%=%d%+1  这里错了.
for /l %%i in (1,1,9) do (...) do后面的都括号啦.

另: ping不可用来精确计时,速度快的机子它跑的快反之慢,怎么计时呀?

TOP

哦,谢谢,,,,,,,,

TOP

来个精确计时:
  1. @echo off
  2. set /p j=请输入倒计时时间(秒):
  3. set s=0
  4. :b
  5. set t1=%time:~0,-3%
  6. :a
  7. if %s%==%j% goto sjd
  8. set t2=%time:~0,-3%
  9. ping -n 1 127.0.1>nul
  10. if %t2%==%t1% (goto a)
  11. set /a s=%s%+1
  12. goto b
  13. :sjd
  14. echo %j%秒已过!
  15. pause
复制代码
原理:根据系统时间计时(当然系统时间不准的话他也不准啦)
不过每秒之间有一点误差,但是优点是不管你设多少秒,最后误差不超过0.5秒。
以下是计10秒时的对比:
用这种方法:
  1. 13:43:46.62
  2. 13:43:47.07
  3. 13:43:48.12
  4. 13:43:49.15
  5. 13:43:50.06
  6. 13:43:51.09
  7. 13:43:52.10
  8. 13:43:53.12
  9. 13:43:54.09
  10. 13:43:55.07
复制代码
用ping:
  1. 13:46:09.42
  2. 13:46:10.46
  3. 13:46:11.51
  4. 13:46:12.56
  5. 13:46:13.62
  6. 13:46:14.67
  7. 13:46:15.71
  8. 13:46:16.78
  9. 13:46:17.89
  10. 13:46:18.95
复制代码

[ 本帖最后由 zcydez 于 2010-8-12 10:19 编辑 ]

TOP

返回列表