标题: [文本处理] 批处理怎样将上一条命令结果赋值给IF? [打印本页]
作者: zcdwzcdw 时间: 2010-8-7 08:44 标题: 批处理怎样将上一条命令结果赋值给IF?
各位大侠好:
我想知道一个内网IP是否能PING通.
使用如下命令:
ping 192.168.1.111|find /c "Minimum"
结果返回 0 或 1 .
我现在就是想直接用IF,将返回的结果和1比较,等于则通,不等于则不通.
但是怎么做都不行,期间也想过SET赋值也行不通.
愿高手教我,谢谢!
作者: TX_kakashi 时间: 2010-8-7 09:56
直接用if去判断返回的%errorlevel%的值就好了。0代表find找到字符串了,1表示没有。
如果ping不通则显示:Ping request could not find host www.www.www. Please check the name and try again.
所以截取了部分字符串作为判断。- ping xxx.xxx.xxx.xxx| find /i "check the name" >nul 2>nul
- if /i {%errorlevel%}=={1} echo [Connected!]
- if /i {%errorlevel%}=={0} echo [Ddisconnected!]
复制代码
作者: zcdwzcdw 时间: 2010-8-7 10:27
谢谢楼上,我试了一下,好像不行呀.按您的代码,%errorlevel%屏蔽空信息和出错信息,只能返回1.
最后总是显示Connected!连通.不知道我这样理解对不对.
不过您大大地扩展了我的思路,非常感谢您!
作者: TX_kakashi 时间: 2010-8-7 11:55
不会吧,我这里的测试结果。
作者: caruko 时间: 2010-8-7 12:21
ping 192.168.1.111 && echo [Connected!] || echo [Ddisconnected!]
作者: TX_kakashi 时间: 2010-8-7 13:36
又测试了一下,发现自己ping命令写的有问题,应该是截取"100% loss";不过大概思路还是对的,lz自行修改^^
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |