bat文件中程序返回码在if语句嵌套下的返回值问题,求解!!

本机当前IP为192.168.1.254,目的是想通过IP来判断当前网段以便做其它操作。现在遇到%errorlevel%在if嵌套下的返回值不能改变,也就是继承第一个fi... 本机当前IP为192.168.1.254,目的是想通过IP来判断当前网段以便做其它操作。现在遇到%errorlevel%在if嵌套下的返回值不能改变,也就是继承第一个find时的值,为什么?当如何修改?
@echo off
@ipconfig >ip.txt
@find "192.168.2" ip.txt >nul
if %errorlevel%==1 (
@find "192.168.1" ip.txt >nul
if %errorlevel%==1 (
echo 当前为未知网段设置!!!
) else (
echo 当前为1网段设置!!!
)
) else (
echo 当前为2网段设置!!!
)
展开
 我来答
jd08139
2013-11-03 · TA获得超过3734个赞
知道大有可为答主
回答量:2174
采纳率:66%
帮助的人:2856万
展开全部
@echo off
setlocal enabledelayedexpansion
@ipconfig >ip.txt
@find "192.168.2" ip.txt >nul
if %errorlevel%==1 (
  @find "192.168.1." ip.txt >nul
  if !errorlevel!==1  (
    echo       当前为未知网段设置!!!
    ) else (
        echo      当前为1网段设置!!!
            )
   ) else (
    echo      当前为2网段设置!!!
)
pause

可以 启用延迟变量扩展.

或者

@echo off
@ipconfig >ip.txt
@find "192.168.2." ip.txt >nul
if errorlevel==1 (
  @find "192.168.1." ip.txt >nul
  if errorlevel==1  (
    echo       当前为未知网段设置!!!
    ) else (
        echo      当前为1网段设置!!!
            )
   ) else (
    echo      当前为2网段设置!!!
)
pause

可以将"192.168.2"改为"192.168.2."

"192.168.1"改为"192.168.1."

beelee8768
2013-11-03 · TA获得超过1713个赞
知道小有建树答主
回答量:951
采纳率:83%
帮助的人:258万
展开全部
@echo off
ipconfig >ip.txt
find "192.168.2" ip.txt >nul && echo 当前为2网段!!! || find "192.168.1" ip.txt >nul && echo 当前为1网段!!! || echo 当前为未知网段设置!!!
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式