ping 192.168.113.61 && echo 成功! || echo 失败!
ping返回:Reply from [本机IP] :无法访问目标主机/TTL在传输中过期
用上面的代码却返回:成功!
&&和||,只判断成功与否,只要有回传数据,就显示成功
有没有什么好办法返回无法访问目标主机时也能返回:失败!
有办法么
ping 192.168.113.61 >nul
if %errorlevel%==0 (echo 成功) else (echo 失败)
楼主我说一下 你这条命令
无论怎样都不会显示失败因为 echo 成功 这条命令总会成功
长篇大论我说不起 看一下我以前提的问题
追问但是如果返回“无法访问目标主机”还是会显示成功
还有如何在之前的命令执行成功后才执行下面的命令,并且!!同时将结果作为参数传过去?
命令||如果前面的命令成功成功就执行这条命令
命令|命令接收参数
||是前面失败则执行,我要前面成功才执行后面,并且同时!!!!传递参数,要是不回答,就吱一声
只要没有"TTL"就是成功,但要是命令本身返回了失败的“请求超时”呢
追答可以参考这个思路自己修改,如果没有某个字符串如“TTL” 则如下:
ping 192.168.113.61|findstr /v TTL && echo 成功! || echo 失败
注意findstr 命令区分大小写 ,如果忽略大小写需要加/i 参数。如
ping 192.168.113.61|findstr /iTTL= && echo 成功! || echo 失败
ping 192.168.113.61|findstr /iv TTL && echo 成功! || echo 失败
那需要ping很多次,结果就乱了,要ping一次出结果的,如果返回请求超时,本身返回就是错误,如果返回无法访问目标主机,则是返回成功,因为有来自其它主机的返回,所以不能单纯通过errorlevel判断,这才是我的纠结所在,要是ping多次,我也会弄,LZ可以考虑一下变量
本回答被提问者采纳