Board logo

标题: [讨论]2次ping1 不等于 1次ping2 [打印本页]

作者: 523066680     时间: 2008-12-27 17:30    标题: [讨论]2次ping1 不等于 1次ping2

题目: 2次ping1 不等于 1次ping2
文/523066680
::

这里ping1指 ping -n 1 127.1>nul ; ping2 指ping -n 2 127.1>nul

    偶然发现 for /l %%a in (1,1,2) do (ping -n 1 127.1>nul) 跟ping -n 2 127.1>nul
等待的时间相差甚远,所以,他们不相等。
    我尝试了把for 中的 2 改为 9 依然不到一秒,感觉这个"精确度"还可以,所以后来写
特效一直用,我开始学批处理的时候是很乱来的,后来简化为
    for /l %%a in (1,1,2) do (ping -n>nul)
    终于,在群里发代码的时候有人问,怎么不直接  ping -n 2 127.1>nul (下面简称为ping2)
我回答ping2 的时间大于 两次 ping1 的时间,而 2 次 ping1 带来的效果刚刚好。
    再后来HAT说,直接 "ping -n>nul" 是错误的句子,如果ping -n>nul达到的效果,那么其他
命令应该也一样,遂以attrib为例,一试,时间真的一样,于是晕晕的下线了。
    唉,忘了反驳了,要是用echo 就得几百次了。attrib也是刚好有一点的延时.

以下整理个人观点:
    后来看到一些批处理例如: 逐字读文章的批处理  还有一些特效等
为了达到适合的速度,有的用 几千次echo, 有的用 生成  sleep.xxx

    我认为我所倡导的方法是比较好的,用代码说话吧:
@echo off
color 4e
set str= cn-dos 523066680 祝 大 家 新 年 快 乐 !
for /l %%a in (0,1,50) do (
   call,set /p x=%%str:~%%a,1%%<nul
   for /l %%b in (1,1,5) do (ping -n 1 127.0>nul)
)
exit
怎么样?这个打字的速度刚刚好吧?

    对于这个打字效果,用 几千次 echo,>nul的缺点在于
执行次数多,对于不同的机子,拖延的时间可能会不一样。

    ping -n 2 127.1>nul 打字拖延时间太长。

    生成 sleep 的我没话说,只是个人不习惯....
   
    for /l %%b in (1,1,N) do (ping -n 1 127.0>nul)
的好处就在于,1-9 次的时间都是不超过1秒的,可以通过选择 1-9 次 这来达到比较详细
的延时效果,相对于echo, 次数更好选择,而且对于不同的机子,一般效果一样。

(范围一般选 1-9 ,再大就接近秒了...)
作者: pooronce     时间: 2008-12-27 18:01
不知道有没有人计算过ping的杂项耗时。。。
ping -n 1 -w 2850 99>nul
作者: BC     时间: 2008-12-28 13:59
个人觉得和 植树原理 有关