Board logo

标题: [网络连接] [已解决]批处理如何根据ip地址的特性,智能修改网关? [打印本页]

作者: ygqiang    时间: 2011-10-16 16:28     标题: [已解决]批处理如何根据ip地址的特性,智能修改网关?

本帖最后由 ygqiang 于 2011-11-12 20:45 编辑

批处理如何根据ip地址的特性,智能修改网关?

在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后面的代码


如何写bat代码?

多谢
作者: 601997526    时间: 2011-10-16 17:11

  1. @echo off
  2. for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr /c:"IP Address"') do set i=%%i
  3. for /f "tokens=1,2,3,4 delims=." %%i in ("%i%") do set Gateway=%%i.%%j.%%k.1
  4. netsh i i set address name="本地连接" gateway=%Gateway% gwmetric=1 >nul&&echo 你的网关已经设定为           %Gateway%
  5. pause
复制代码

作者: ygqiang    时间: 2011-10-16 17:47

601997526 发表于 2011-10-16 17:11



多谢。

可能是我没有说清楚要求:

1、只有是那3个类型的ip地址,才修改对应的网关
2、如果是别的类型ip地址,就不用修改了

谢谢
作者: lxzzr    时间: 2011-10-16 21:48

本帖最后由 lxzzr 于 2011-10-17 07:53 编辑

回复 3# ygqiang
  1. @echo off
  2. for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr /c:"IP Address"') do set i=%%i
  3. for /f "tokens=1,2,3,4 delims=." %%i in ("%i: =%") do ( set Gateway=%%i.%%j.%%k.1
  4. if "%%i.%%j.%%k" == "10.10.93"  goto :setup
  5. if "%%i.%%j.%%k" == "10.10.94"  goto :setup
  6. if "%%i.%%j.%%k" == "10.10.127" goto :setup
  7. )
  8. echo 未做更改
  9. goto :end
  10. :setup
  11. netsh i i set address name="本地连接" gateway=%Gateway% gwmetric=1
  12. echo 你的网关已经设定为: %Gateway%
  13. :end
  14. echo.
  15. pause
复制代码

作者: ygqiang    时间: 2011-10-17 00:34

楼上代码有问题?吗

我修改ip为:10.10.93.45

1、运行楼上的代码,会提示:未做更改

2、运行下面的代码,会提示:网关已经设定成10.10.93.1
  1. @echo off
  2. set a=0
  3. :start
  4. set /a a+=1
  5. for /f "skip=1 tokens=%a% delims=." %%i in ('wmic path Win32_NetworkAdapterConfiguration get ipaddress') do (
  6. set s=%%i
  7. goto next
  8. )
  9. :next
  10. if %a%==1 set j=%s:~2%
  11. if %a%==2 set k=%s%
  12. if %a%==3 set l=%s%
  13. if %a% lss 3 goto start
  14. if "%l%"=="93" goto end
  15. if "%l%"=="94" goto end
  16. if "%l%"=="127" goto end
  17. goto continue
  18. :end
  19. set Gateway=%j%.%k%.%l%.1
  20. netsh interface ip set address name="本地连接" gateway=%Gateway% gwmetric=1 >nul&&echo 你的网关已经设定为 %Gateway%
  21. pause
  22. exit
  23. :continue
  24. echo 网关无需修改
  25. pause
复制代码

作者: ygqiang    时间: 2011-10-17 00:45

本帖最后由 ygqiang 于 2011-10-17 01:08 编辑

4楼修改后的代码,就正常了。
  1. for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr /c:"IP Address"') do set i=%%i
  2. for /f "tokens=1,2,3,4 delims=." %%i in ("%i: =%") do (set Gateway=%%i.%%j.%%k.1
  3. set date=%%i.%%j.%%k)
  4. if "%date%" == "10.10.9"  goto set1
  5. if "%date%" == "10.10.93"  goto set1
  6. if "%date%" == "10.10.94"  goto set1
  7. if "%date%" == "10.10.127" goto set1
  8. echo 未做更改
  9. pause
  10. goto :continue
  11. :set1
  12. netsh i i set address name="本地连接" gateway=%Gateway% gwmetric=1
  13. echo 你的网关已经设定为: %Gateway%
  14. pause
  15. :continue
复制代码

作者: ygqiang    时间: 2011-10-17 09:31

6楼的代码,有人说:“得出来的IP地址前面多一个空格的。”

再次修改如下:
  1. for /f "tokens=15 delims= " %%i in ('ipconfig ^| find /i "IP Address"') do set i=%%i
  2. for /f "tokens=1,2,3 delims=." %%i in ("%i%") do (set a=%%i.%%j.%%k)
  3. set Gateway=%a%.1
  4. if "%a%" == "10.10.9"  goto set1
  5. if "%a%" == "10.10.93"  goto set1
  6. if "%a%" == "10.10.94"  goto set1
  7. if "%a%" == "10.10.127" goto set1
  8. echo 未做更改
  9. goto :continue
  10. :set1
  11. netsh i i set address name="本地连接" gateway=%Gateway% gwmetric=1
  12. echo 你的网关已经设定为: %Gateway%
  13. :continue
复制代码

作者: ygqiang    时间: 2011-11-12 20:45

  1. for /f "tokens=15 delims= " %%i in ('ipconfig ^| find /i "IP Address"') do set i=%%i
  2. for /f "tokens=1,2,3 delims=." %%i in ("%i%") do (set a=%%i.%%j.%%k)
  3. set Gateway=%a%.1
  4. if "%a%" == "10.10.9"  goto set1
  5. if "%a%" == "10.10.93"  goto set1
  6. if "%a%" == "10.10.94"  goto set1
  7. if "%a%" == "10.10.127" goto set1
  8. echo 未做更改
  9. goto :continue
  10. :set1
  11. netsh i i set address name="本地连接" gateway=%Gateway% gwmetric=1
  12. echo 你的网关已经设定为: %Gateway%
  13. :continue
复制代码
问题解决。




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