![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 18:09 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于"for"的另类理解(个人意见) |
| 可打印版本 1,275 / 6 |
| 第1楼 bat-zw | 发表于 2008-03-11 12:08 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
关于"for"的另类理解(个人意见) 关于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 ] |
|
| 第2楼 woo88 | 发表于 2008-03-11 13:01 |
| 初级用户 发帖 96 积分 188 | |
|
不错
|
|
| 第3楼 terse | 发表于 2008-03-11 13:34 |
| 银牌会员 发帖 946 积分 2,404 | |
Originally posted by zw19750516 at 2008-3-11 12:08: 这里是否是这样的? 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 ] |
|
| 第4楼 huahua0919 | 发表于 2008-03-11 14:07 |
| 银牌会员 发帖 780 积分 1,608 | |
|
不仅仅是for命令,一般循环语句在没有内部跳转符的时候,都是按照先里后外的执行顺序执行的!
以上代码同样执行100次! |
|
| 第5楼 HAT | 发表于 2008-03-11 14:14 |
| 版主 发帖 5,017 积分 9,023 | |
|
讲得很清楚,不过没看出另类的地方:)
|
|
| 第6楼 bat-zw | 发表于 2008-03-12 03:04 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
这样理解还不是另类啊,起码是另一类理解方法了吧,呵呵
|
|
| 第7楼 ansipeter | 发表于 2008-03-12 11:55 |
| 中级用户 发帖 130 积分 269 | |
|
只是很普通的FOR语句的嵌套使用,好像不是太过分的另类理解吧?呵呵
而且还可以这样玩 @echo off for /l %%a in (1,1,50) do ( for /l %%b in (1,1,%%a) do set/p a=#<nul echo. ) [ Last edited by ansipeter on 2008-3-12 at 12:03 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |