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网段设置!!!
) 展开
@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网段设置!!!
) 展开
展开全部
@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."
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询