关于DOS中至强命令FOR的理解,各位前辈们已有了详细的分析,在此本人就“不班门弄斧孔门作文比欠盖茨面前比钞票了”,只是发表一下本人对其的另类理解。一般DOS命令都只是单次执行,下面以ping为例进行下说明:
ping/n 10 127.1/此命令就是对本地网卡一次拼测10下,就好比是一个人去做一件有10道程序的事情。如加入for:
for /l %%a in (1,1,10) do ping/n 10 127.1/就变成了反复拼测10次(每次拼10下),就好比是一个人10次去做同一件有10道程序的事。
又如下面这段命令:
ping 192.168.1.1 -n 10
ping 192.168.1.2 -n 10
ping 192.168.1.3 -n 10
........................
ping 192.168.1.10 -n 10
是表示对192.168.1网段内尾数为1至10内的ip依次进行拼测10下,就如同一个人一次去做一组有10件每件有10道程序的事。加入for后:
for /l %%a in (1,1,10) do ping 192.168.1.%a%/就如同叫10个人来做这组事,每人依次负责一件有10道程序的事。
再如下面的这段命令:
ping 192.168.0.1 -n 10
ping 192.168.0.2 -n 10
........................
ping 192.168.0.n -n 10
ping 192.168.1.1 -n 10
ping 192.168.1.2 -n 10
........................
ping 192.168.1.10 -n 10
就是对192.168.0网段和192.168.1网段内尾数在1至10内的每个ip分别拼测10下,这如同叫一个人去做两组每组都有10件每件有10道程序的事,加入for:
for /l %%a in (0,1,1) do (
for / %%b in (1,1,10) do (
ping 192.168.%a%.%b% -n 10
)
)
这就变成了叫两组人每组10个来分开做这两组事,每人依次负责一件有10道程序的事。
以上纯属个人理解,我过往说之,大家也就过往听之了,只要不拍砖就好了,呵呵。
:-)
[ Last edited by zw19750516 on 2008-3-11 at 08:23 PM ]作者: woo88 时间: 2008-3-11 13:01 不错作者: terse 时间: 2008-3-11 13:34
Quote:
Originally posted by zw19750516 at 2008-3-11 12:08:
关于DOS中至强命令FOR的理解,....
for /l %%a in (0,1,1) do (
for / %%b in (1,1,10) do (
ping 192.168.%a%.%b% -n 10
)
) ......
这里是否是这样的?
for /l %%a in (0,1,1) do (
for /l %%b in (1,1,10) do (
ping 192.168.%%a.%%b -n 10
)
)
pause
理解你前面的 也可以这样的嘛!
for /l %%a in (0,1,1) do (
for /l %%b in (1,1,10) do (
for /l %%c in (1,1,10) do (
ping 192.168.%%a.%%b
)
)
)
pause
[ Last edited by terse on 2008-3-11 at 01:42 PM ]作者: huahua0919 时间: 2008-3-11 14:07 不仅仅是for命令,一般循环语句在没有内部跳转符的时候,都是按照先里后外的执行顺序执行的!