标题: [文本处理] 批处理连着用IF做比较,可结果为何不对? [打印本页]
作者: 624378168 时间: 2011-10-16 21:26 标题: 批处理连着用IF做比较,可结果为何不对?
在xp系统,单网卡情况下,如何根据ip地址的特性,智能修改网关?
ip地址是:10.10.93.xx 网关就修改成:10.10.93.1
ip地址是:10.10.94.xx 网关就修改成:10.10.94.1
ip地址是:10.10.127.xx 网关就修改成:10.10.127.1
如果是别的类型的ip地址,就不修改什么设置 直接运行:continue后面的代码
我做的代码如下 不如为什么设置成这样结果不是我想要的结果- @echo off
- for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr /c:"IP Address"') do set i=%%i
- if %i% leq 10.10.93.255 goto 93
- if %i% leq 10.10.94.255 goto 94
- if %i% leq 10.10.127.255 goto 127
- goto ly
- :93
- if %i% geq 10.10.93.1 goto wg
- goto ly
- :94
- if %i% geq 10.10.94.1 goto wg
- goto ly
- :127
- if %i% geq 10.10.127.1 goto wg
- goto ly
- :wg
- for /f "tokens=1,2,3,4 delims=." %%i in ("%i%") do set Gateway=%%i.%%j.%%k.1
- netsh i i set address name="本地连接" gateway=%Gateway% gwmetric=1 >nul&&echo 你的网关已经设定为 %Gateway%
- goto ly
- :ly
- pause
复制代码
作者: QIAOXINGXING 时间: 2011-10-16 22:20
10.10.93.43 leq 10.10.93.255 这是假命题吧。。。
作者: 624378168 时间: 2011-10-16 22:37
不明白楼上的意思
作者: QIAOXINGXING 时间: 2011-10-16 23:01
回复 3# 624378168
10.10.93.43 并不 leq 10.10.93.255- @echo off
- if 10.10.93.43 leq 10.10.93.255 echo 33333333
- if 43 leq 255 echo 4444444
- pause
复制代码
作者: ygqiang 时间: 2011-10-17 01:06
晕。
楼主跟我的需求一样。
http://bathome.net/thread-14393-1-1.html
作者: garyng 时间: 2011-10-17 15:16
记得啊!批处理不能比较小数点!!而且IP多过一个小数点,批处理不会辨认!
作者: lxzzr 时间: 2011-10-17 16:16
变量“i” 有个空格吧
作者: QIAOXINGXING 时间: 2011-10-18 12:10
回复 6# garyng
貌似不是这样的吧:- @echo off
- if 10.10.93.13 leq 10.10.93.255 echo 2222222
- if 10.10.93.43 leq 10.10.93.255 echo 33333333
- if 43 leq 255 echo 4444444
- if 13 leq 255 echo 5555555
- pause
复制代码
作者: /zhqsystem/zhq 时间: 2016-12-7 22:29
- rem:标准IP自行提取
- for /f "delims=." %%i in ("!ip!")do if "%%~i"=="10" (
- for /f "delims=" %%i in ("!ip!")do (
- echo,%%~ni.1
- )
- )
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |