Board logo

标题: [文本处理] 批处理怎样将上一条命令结果赋值给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.
所以截取了部分字符串作为判断。
  1. ping xxx.xxx.xxx.xxx| find /i "check the name" >nul 2>nul
  2. if /i {%errorlevel%}=={1} echo [Connected!]
  3. 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