找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 93921|回复: 22

[网络连接] 【已解决】获取IP地址信息再更改IP地址批处理。

[复制链接]
发表于 2014-10-8 15:54:02 | 显示全部楼层 |阅读模式
本帖最后由 小智BAT 于 2014-10-14 06:47 编辑

大家帮忙测试下,如有建议都提出来。

代码已经更新这个看,看看有还有什么问题??
  1. @echo off
  2. title IP自动改手动批处理。
  3. color 0a
  4. ver | find "5.1." > NUL &&  goto show51
  5. ver | find "6.1." > NUL &&  goto show61
  6. :show51
  7. @echo 当前系统是:[WindowsXP ]

  8. echo ------------------------
  9. echo 正在获取本地连接地址信息:
  10. set "w1=wmic nic where "NetConnectionID='本地连接'" get Index"
  11. for /f %%a in ('%w1% ^| findstr /b [0-9]') do set "n=%%a"
  12. set "w2=wmic nicconfig where "Index='%n%'" get DNSServerSearchOrder^,DefaultIPGateway^,IPAddress^,IPSubnet"
  13. for /f tokens^=1-2delims^={^" %%a in ('%w2% /value^|find "."')do set "%%a%%b"
  14. echo ============================
  15. echo,IP地址:%IPAddress%
  16. echo,子网:%IPSubnet%
  17. echo,网关:%DefaultIPGateway%
  18. echo,DNS:%DNSServerSearchOrder%
  19. echo 正在修改为手动IP地址
  20. netsh interface ip set address name="本地连接" source=static addr=%IPAddress% mask=%IPSubnet%
  21. netsh interface ip set address name="本地连接" gateway=%DefaultIPGateway% gwmetric=0
  22. echo 正在修改DNS为:%DNSServerSearchOrder%和114.114.114.114
  23. netsh interface ip set dns name="本地连接" source=static addr=%dns%
  24. netsh interface ip add dns name="本地连接" addr=114.114.114.114
  25. pause & exit
  26. :show61
  27. @echo 当前系统是:[Windows7 ]
  28. echo ------------------------
  29. echo 正在获取本地连接地址信息:
  30. set "w1=wmic nic where "NetConnectionID='本地连接'" get Index"
  31. for /f %%a in ('%w1% ^| findstr /b [0-9]') do set "n=%%a"
  32. set "w2=wmic nicconfig where "Index='%n%'" get DNSServerSearchOrder^,DefaultIPGateway^,IPAddress^,IPSubnet"
  33. for /f tokens^=1-2delims^={^" %%a in ('%w2% /value^|find "."')do set "%%a%%b"
  34. echo ============================
  35. echo,IP地址:%IPAddress%
  36. echo,子网:%IPSubnet%
  37. echo,网关:%DefaultIPGateway%
  38. echo,DNS:%DNSServerSearchOrder%
  39. echo ============================
  40. goto workdo
  41. :workdo
  42. set "pattern_包含=^[^.]*\.[^.]*\.[^.]*\.[^.]*$"
  43. set "pattern_排除=[^.][^.][^.][^.] [^0-9.] \.\."
  44. echo %IPAddress%|findstr "%pattern_包含%"|findstr /v "%pattern_排除%"|findstr /v "[0-9][0-9][0-9][0-9] [3-9][0-9][0-9] 2[6][0-9] 25[6-9]" && goto workip || echo 本地连

  45. 接网络没连接或者网线没拆好。&goto exitip
  46. :workip
  47. echo 正在修改为手动IP地址:%IPAddress% %IPSubnet% %DefaultIPGateway% %DNSServerSearchOrder%
  48. netsh interface ip set address name="本地连接" source=static addr=%IPAddress% mask=%IPSubnet% gateway=%DefaultIPGateway% gwmetric=1
  49. echo 正在修改DNS为:114.114.114.114和%DNSServerSearchOrder%
  50. netsh interface ipv4 set dns name="本地连接" source=static addr=%DNSServerSearchOrder%
  51. netsh interface ipv4 add dns name="本地连接" addr=114.114.114.114
  52. echo 修复完成。
  53. pause & exit

  54. :exitip
  55. exit
  56. pause
复制代码
发表于 2014-10-8 22:13:57 | 显示全部楼层
xp下就不需要用ipv4了。
发表于 2014-10-8 22:33:03 | 显示全部楼层
可以考虑同时兼容中文系统和英文系统
 楼主| 发表于 2014-10-8 22:56:20 | 显示全部楼层
回复 2# Linuxer


    忘了改了。现在更新代码了。
 楼主| 发表于 2014-10-8 22:57:06 | 显示全部楼层
回复 3# Batcher


    该怎样改才兼容啊!??
发表于 2014-10-8 23:51:05 | 显示全部楼层
用WMIC 是否方便些呢?
 楼主| 发表于 2014-10-9 08:26:31 | 显示全部楼层
回复 6# terse


    可以给个参考吗?
发表于 2014-10-9 09:13:18 | 显示全部楼层
第八行delims=后面为什么是一个中文的冒号?
发表于 2014-10-9 09:17:22 | 显示全部楼层
如果以冒号作为列分隔符的话,获取到的ip、sm、wg变量里面会有多余的空格。
如果只是用来做显示的话当然没有问题,但删掉空格显得比较严谨。
发表于 2014-10-9 09:19:24 | 显示全部楼层
还有一点,你看是不是需要考虑多网卡的系统:
一个有线网卡,一个无线网卡。
安装了VMware之后产生的虚拟网卡。
...
 楼主| 发表于 2014-10-9 10:13:43 | 显示全部楼层
回复 9# Batcher


    那该如何去除空格问题,关于多网卡时,我暂不考虑,因为我只需改本地连接。
发表于 2014-10-9 10:59:01 | 显示全部楼层
回复 11# 小智BAT


    可以用set命令的字符串截取或者替换功能删掉空格
发表于 2014-10-9 11:01:57 | 显示全部楼层
我说的多网卡的情况是指,你的第8到10行可能会获取到错误的ip、sm、wg,最终导致后面的 netsh 命令给本地连接设置成错误的地址,于是就无法上网了。
 楼主| 发表于 2014-10-9 13:34:13 | 显示全部楼层
回复 13# Batcher


    可以举个栗子吗?
发表于 2014-10-9 16:51:46 | 显示全部楼层
回复 14# 小智BAT


以太网适配器 Local Area Connection:

   连接特定的 DNS 后缀 . . . . . . . : xxx
   本地链接 IPv6 地址. . . . . . . . : xxx
   IPv4 地址 . . . . . . . . . . . . : 10.10.1.2
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 10.10.1.1

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : xxx
   IPv4 地址 . . . . . . . . . . . . : 192.168.222.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 22:02 , Processed in 0.035664 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表