![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 04:38 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教一下:如何在使用PING命令以后,进行结果统计 |
| 可打印版本 1,265 / 9 |
| 第1楼 justing | 发表于 2010-11-16 13:55 |
| 初级用户 发帖 11 积分 20 | |
|
请教一下:如何在使用PING命令以后,进行结果统计 以下是我的一个小BAT命令
@echo off echo --------------------------------------------------------- echo ---=== PINGING b1 echo --------------------------------------------------------- ping 10.66.183.1 echo --------------------------------------------------------- echo ---=== PINGING b2 echo --------------------------------------------------------- ping 10.66.183.2 echo --------------------------------------------------------- echo ---=== PINGING b3 echo --------------------------------------------------------- ping 10.66.183.3 echo --------------------------------------------------------- echo ---=== PINGING b4 echo --------------------------------------------------------- ping 10.66.183.4 echo --------------------------------------------------------- echo ---=== PINGING b5 echo --------------------------------------------------------- ping 10.66.183.5 pause ---- 最后我希望能达到的效果是, 执行完以上几条PING命令,自动显示出比如“能PING通的IP有b1,b2(或者直接是IP), 不能PING通的IP有b3,b4,b5(或者直接是IP)" 因为是局域网内的PING,所以超时就是不通,收到包就通,我感觉是做个时间判断就行了, 不过小弟才疏学浅,不知道如何下手。。求教各位高手! |
|
| 第2楼 wewebb | 发表于 2010-11-16 15:35 |
| 初级用户 发帖 53 积分 66 | |
| 第3楼 justing | 发表于 2010-11-16 17:16 |
| 初级用户 发帖 11 积分 20 | |
|
非常感谢您的快速回复,我现在就试试!你真是个好人呐~
|
|
| 第4楼 justing | 发表于 2010-11-16 17:21 |
| 初级用户 发帖 11 积分 20 | |
|
不好意思啊。您的程序我用了,提示我“已经达到最大的Setlocal递归层”不知道怎么回事。。
我试着把(1,1,5)改成(1,5)以后,再运行,结果为 PING 通的 IP为: 0 不通的 IP为: 0 请按任意键继续. . . [ Last edited by justing on 2010-11-16 at 17:28 ] |
|
| 第5楼 wewebb | 发表于 2010-11-16 17:47 |
| 初级用户 发帖 53 积分 66 | |
![]() 我在 XP 上使用正常的。 是否你的 批处理上还有其它代码呢? 你可以试试在 最后 的 Pause 上面加入一行 Endlocal |
|
| 第6楼 wewebb | 发表于 2010-11-16 17:53 |
| 初级用户 发帖 53 积分 66 | |
|
(1,1,5) 是个累加循环, 只要累加值不大于第三个参数就会循环下去。
%%a 的值会依次变成 1 2 3 4 5 改成 (1,5) 以后,实际会变成 (1,5,0) 累加值是 1+5=6 ,由于大于第三个参数 0 。所以 For 循环不会执行。 这样的批处理就会变样了的。 [ Last edited by wewebb on 2010-11-16 at 18:04 ] |
|
| 第7楼 wewebb | 发表于 2010-11-16 18:14 |
| 初级用户 发帖 53 积分 66 | |
|
这是不用 Setlocal 的另一个写法。 [ Last edited by wewebb on 2010-11-16 at 18:20 ] |
|
| 第8楼 justing | 发表于 2010-11-16 22:42 |
| 初级用户 发帖 11 积分 20 | |
|
谢谢wewebb朋友!真的很感谢你!
1,明天我先试试Endlocal 2,如果还不行,我再试试楼上你的另一种方法,好的话,我再来谢谢你 |
|
| 第9楼 justing | 发表于 2010-11-17 10:05 |
| 初级用户 发帖 11 积分 20 | |
|
我刚才用了两种方法,还是不行啊。
加上endlocal还是提示“已经达到最大的Setlocal递归层” 用第二种方法就显示 --------------------------------------------------------- ---=== 正在 PINGING B1 …… --------------------------------------------------------- 然后一秒种以后就退出了 算了,我用自己那个方法也能用,只是想练练手用点高级的方法 我谢谢wewebb朋友,可能是我们单位机器有什么特殊吧,你的程序我感觉是对的!· |
|
| 第10楼 不得不爱 | 发表于 2010-11-17 14:09 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
下面的批处理可以ping 10.66.183.1---10.66.183.255如果想只ping到10.66.183.50就将255改成50,以此类推.
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |