[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理连着用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
复制代码

10.10.93.43 leq 10.10.93.255    这是假命题吧。。。

TOP

不明白楼上的意思

TOP

回复 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
复制代码

TOP

晕。

楼主跟我的需求一样。
http://bathome.net/thread-14393-1-1.html

TOP

记得啊!批处理不能比较小数点!!而且IP多过一个小数点,批处理不会辨认!

TOP

变量“i” 有个空格吧

TOP

回复 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
复制代码

TOP

  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. )
复制代码
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

返回列表