[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样将上一条命令结果赋值给IF?

各位大侠好:

我想知道一个内网IP是否能PING通.

使用如下命令:

ping 192.168.1.111|find /c "Minimum"

结果返回 0  或 1 .

我现在就是想直接用IF,将返回的结果和1比较,等于则通,不等于则不通.

但是怎么做都不行,期间也想过SET赋值也行不通.

愿高手教我,谢谢!

直接用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!]
复制代码

TOP

谢谢楼上,我试了一下,好像不行呀.按您的代码,%errorlevel%屏蔽空信息和出错信息,只能返回1.

最后总是显示Connected!连通.不知道我这样理解对不对.

不过您大大地扩展了我的思路,非常感谢您!

TOP

不会吧,我这里的测试结果。

TOP

ping 192.168.1.111 && echo [Connected!] || echo [Ddisconnected!]

TOP

又测试了一下,发现自己ping命令写的有问题,应该是截取"100% loss";不过大概思路还是对的,lz自行修改^^

TOP

返回列表