Board logo

标题: [文本处理] 批处理连着用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后面的代码

我做的代码如下 不如为什么设置成这样结果不是我想要的结果
  1. @echo off
  2. for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr /c:"IP Address"') do set i=%%i
  3. if %i% leq 10.10.93.255 goto 93
  4. if %i% leq 10.10.94.255 goto 94
  5. if %i% leq 10.10.127.255 goto 127
  6. goto ly
  7. :93
  8. if %i% geq 10.10.93.1 goto wg
  9. goto ly
  10. :94
  11. if %i% geq 10.10.94.1 goto wg
  12. goto ly
  13. :127
  14. if %i% geq 10.10.127.1 goto wg
  15. goto ly
  16. :wg
  17. for /f "tokens=1,2,3,4 delims=." %%i in ("%i%") do set Gateway=%%i.%%j.%%k.1
  18. netsh i i set address name="本地连接" gateway=%Gateway% gwmetric=1 >nul&&echo 你的网关已经设定为           %Gateway%
  19. goto ly
  20. :ly
  21. 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
  1. @echo off
  2. if 10.10.93.43 leq 10.10.93.255 echo 33333333
  3. if 43 leq 255 echo 4444444
  4. 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
貌似不是这样的吧:
  1. @echo off
  2. if 10.10.93.13 leq 10.10.93.255 echo 2222222
  3. if 10.10.93.43 leq 10.10.93.255 echo 33333333
  4. if 43 leq 255 echo 4444444
  5. if 13 leq 255 echo 5555555
  6. pause
复制代码

作者: /zhqsystem/zhq    时间: 2016-12-7 22:29

  1. rem:标准IP自行提取
  2. for /f "delims=." %%i in ("!ip!")do if "%%~i"=="10" (
  3. for /f "delims=" %%i in ("!ip!")do (
  4.   echo,%%~ni.1
  5. )
  6. )
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2