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

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

本帖最后由 小智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
复制代码

xp下就不需要用ipv4了。
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

可以考虑同时兼容中文系统和英文系统
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Linuxer


    忘了改了。现在更新代码了。

TOP

回复 3# Batcher


    该怎样改才兼容啊!??

TOP

用WMIC 是否方便些呢?

TOP

回复 6# terse


    可以给个参考吗?

TOP

第八行delims=后面为什么是一个中文的冒号?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

如果以冒号作为列分隔符的话,获取到的ip、sm、wg变量里面会有多余的空格。
如果只是用来做显示的话当然没有问题,但删掉空格显得比较严谨。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

还有一点,你看是不是需要考虑多网卡的系统:
一个有线网卡,一个无线网卡。
安装了VMware之后产生的虚拟网卡。
...
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# Batcher


    那该如何去除空格问题,关于多网卡时,我暂不考虑,因为我只需改本地连接。

TOP

回复 11# 小智BAT


    可以用set命令的字符串截取或者替换功能删掉空格
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我说的多网卡的情况是指,你的第8到10行可能会获取到错误的ip、sm、wg,最终导致后面的 netsh 命令给本地连接设置成错误的地址,于是就无法上网了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13# Batcher


    可以举个栗子吗?

TOP

回复 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
   默认网关. . . . . . . . . . . . . :
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表