无忧启动论坛

标题: 请帮忙精简“本地连接”IP修改 批处理文件,谢谢! [打印本页]

作者: xiaoj1972    时间: 2013-1-17 20:20
标题: 请帮忙精简“本地连接”IP修改 批处理文件,谢谢!
不懂批处理,从网上东拼西凑得到的下面这个,
麻烦大家帮忙检查和精简一下,谢谢!
希望能自动识别XP或win7系统,能根据选择使用联通或电信,麻烦大家了


@echo off
color 3f
title IP设置
MODE con: COLS=80 lines=30
ver | find /i "5." >nul && goto menuxp
ver | find "5.1" > NUL && echo goto menuxp
ver | find "5.2" > NUL && echo goto menuxp
ver | find "6.0" > NUL && echo goto menu7
ver | find "6.1" > NUL && echo goto menu7
ver | find "6.2" > NUL && echo goto menu7
ver | find "6.3" > NUL && echo goto menu7

:menuxp
@ if exist D:\本机IP备份.txt goto menuxp1
ipconfig /all >D:\本机IP备份.txt

:menu
cls
echo.
echo              "本地连接" IP地址设置
echo.
echo            当前时间:%date% %time:~0,-3%
echo.
echo.
echo            【1】设置192.168.1.? (电信)
echo.
echo            【2】设置192.168.1.? (联通)
echo.
echo            【3】设置为自动获取
echo.
echo            【0】退出
echo.
echo            提示:自动备份IP到D:\本机IP备份.txt
echo.
echo.
Set /p clearslt=请输入您的选择(1/2/3/0):
If "%clearslt%"=="1" Goto xpip1
If "%clearslt%"=="2" Goto xpip2
If "%clearslt%"=="3" Goto xpip3
If "%clearslt%"=="0" Goto end

:menuxp1
cls
echo.
echo              "本地连接" IP地址设置
echo.
echo            当前时间:%date% %time:~0,-3%
echo.
echo.
echo            【1】设置192.168.1.? (电信)
echo.
echo            【2】设置192.168.1.? (联通)
echo.
echo            【3】设置为自动获取
echo.
echo            【0】退出
echo.
echo            已经备份首次IP地址到D:\本机IP备份.txt
echo.
echo.
Set /p clearslt=请输入您的选择(1/2/3/0):
If "%clearslt%"=="1" Goto xpip1
If "%clearslt%"=="2" Goto xpip2
If "%clearslt%"=="3" Goto xpip3
If "%clearslt%"=="0" Goto end

:xpip1
set   a=192.168.1.
set /a b=%random%%%255+2
set  MASK=255.255.255.0
set  INTERFACE=本地连接
set /a  i+=1
echo.
echo            电信 IP自动设置开始....
echo.
echo            正在将IP地址更改为%a%%b%,请稍等。。。
netsh interface ip set address name="%INTERFACE%" source=static addr=%a%%b% mask=%MASK%
echo.
echo            开始设置网关。。。。
netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
echo.
echo            开始设置DNS服务器地址。。。
netsh interface ip set dns name="本地连接" source=static addr=202.100.128.68
netsh interface ip add dns name="本地连接" addr=202.100.128.68 index=2
netsh interface ip add dns name="本地连接" addr=202.100.138.68 index=3
echo.
echo      IP地址设置完成
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo            设置电信IP,设置完成!
echo.
echo
echo.
echo             请按任意键退出 。。。
PAUSE >NUL 2>NUL
exit

:xpip2
set   a=192.168.1.
set /a b=%random%%%255+2
set  MASK=255.255.255.0
set  INTERFACE=本地连接
set /a  i+=1
echo.
echo            联通 IP自动设置开始....
echo.
echo            正在将IP地址更改为%a%%b%,请稍等。。。
netsh interface ip set address name="%INTERFACE%" source=static addr=%a%%b% mask=%MASK%
echo.
echo            开始设置网关。。。。
netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
echo.
echo            开始设置DNS服务器地址。。。
netsh interface ip set dns name="本地连接" source=static addr=221.207.58.58
netsh interface ip add dns name="本地连接" addr=221.207.58.58 index=2
netsh interface ip add dns name="本地连接" addr=221.207.58.68 index=3
netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
echo.
echo      IP地址设置完成
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo            设置联通IP,设置完成!
echo.
echo
echo.
echo            请按任意键退出 。。。
PAUSE >NUL 2>NUL
exit

:xpip3
echo.
echo            IP自动设置开始....
echo.
echo            自动获取IP地址....
netsh interface ip set address "本地连接" source = dhcp
echo            自动获取DNS服务器....
netsh interface ip set dns name = "本地连接" source = dhcp
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo            设置自动获取IP,设置完成!
echo.
echo
echo.
echo            请按任意键退出 。。。
PAUSE >NUL 2>NUL
exit


:menu7
:zd
@ if exist D:\本机IP备份.txt goto menu72
ipconfig /all >D:\本机IP备份.txt

:menu
cls
echo.
echo              "本地连接" IP地址设置
echo.
echo            当前时间:%date% %time:~0,-3%
echo.
echo.
echo            【1】设置192.168.1.? (电信)
echo.
echo            【2】设置192.168.1.? (联通)
echo.
echo            【3】设置为自动获取
echo.
echo            【0】退出
echo.
echo            提示:自动备份IP到D:\本机IP备份.txt
echo.
echo.
Set /p clearslt=请输入您的选择(1/2/3/0):
If "%clearslt%"=="1" Goto ip1
If "%clearslt%"=="2" Goto ip2
If "%clearslt%"=="3" Goto ip3
If "%clearslt%"=="0" Goto end

:menu72
cls
echo.
echo            当前时间:%date% %time:~0,-3%
echo.
echo.
echo            【1】设置192.168.1.? (电信)
echo.
echo            【2】设置192.168.1.? (联通)
echo.
echo            【3】设置为自动获取
echo.
echo            【0】退出
echo.
echo            已经备份首次IP地址到D:\本机IP备份.txt
echo.
echo.
Set /p clearslt=请输入您的选择(1/2/3/0):
If "%clearslt%"=="1" Goto ip1
If "%clearslt%"=="2" Goto ip2
If "%clearslt%"=="3" Goto ip3
If "%clearslt%"=="0" Goto end

:ip1
set   a=192.168.1.
set /a b=%random%%%255+2
set  MASK=255.255.255.0
set  INTERFACE=本地连接
set /a  i+=1
echo.
echo            电信 IP自动设置开始....
echo.
echo            正在将IP地址更改为%a%%b%,请稍等。。。
netsh interface ip set address name="%INTERFACE%" source=static addr=%a%%b% mask=%MASK%
echo.
echo            开始设置网关。。。。
netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
echo.
echo            开始设置DNS服务器地址。。。
netsh interface ip set dns name="本地连接" source=static addr=202.100.128.68
netsh interface ip add dns name="本地连接" addr=202.100.128.68 index=2
netsh interface ip add dns name="本地连接" addr=202.100.138.68 index=3
echo.
echo      IP地址设置完成
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo            设置电信IP,设置完成!
echo.
echo
echo.
CHOICE /C YN /M "退出请按 Y,返回菜单请按 N。"
if errorlevel 2 goto zd
if errorlevel 1 goto end

:ip2
set   a=192.168.1.
set /a b=%random%%%255+2
set  MASK=255.255.255.0
set  INTERFACE=本地连接
set /a  i+=1
echo.
echo            联通 IP自动设置开始....
echo.
echo            正在将IP地址更改为%a%%b%,请稍等。。。
netsh interface ip set address name="%INTERFACE%" source=static addr=%a%%b% mask=%MASK%
echo.
echo            开始设置网关。。。。
netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
echo.
echo            开始设置DNS服务器地址。。。
netsh interface ip set dns name="本地连接" source=static addr=221.207.58.58
netsh interface ip add dns name="本地连接" addr=221.207.58.58 index=2
netsh interface ip add dns name="本地连接" addr=221.207.58.68 index=3
netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
echo.
echo      IP地址设置完成
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo            设置联通IP,设置完成!
echo.
echo
echo.
CHOICE /C YN /M "退出请按 Y,返回菜单请按 N。"
if errorlevel 2 goto zd
if errorlevel 1 goto end

:ip3
echo.
echo            IP自动设置开始....
echo.
echo            自动获取IP地址....
netsh interface ip set address "本地连接" source = dhcp
echo      自动获取DNS服务器....
netsh interface ip set dns name = "本地连接" source = dhcp
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo            设置自动获取IP,设置完成!
echo.
echo
echo.
CHOICE /C YN /M "退出请按 Y,返回菜单请按 N。"
if errorlevel 2 goto zd
if errorlevel 1 goto end

:end
exit

[ 本帖最后由 xiaoj1972 于 2013-1-17 20:37 编辑 ]
作者: xiaoj1972    时间: 2013-1-19 20:01
帮帮忙啊! 谢谢各位!!
作者: baosheng00    时间: 2013-1-28 21:29
这个批处理没有记错的是我写的!以前的名字叫做 “蓝宇电脑,IP设置”

第一版发的帖子
http://www.pcos.cc/thread-4900883-1-1.html

后来加入系统的判断,应该有会员下载我的维护盘提取。

[ 本帖最后由 baosheng00 于 2013-1-28 21:33 编辑 ]
作者: xiaoj1972    时间: 2013-3-17 18:50
标题: 回复 #3 baosheng00 的帖子
嗯,的确是您写的这个批处理,不好意思啊

不知能不能帮检查下?谢谢了
作者: x9tian    时间: 2013-3-18 13:37
呵呵,能用就用吧,不就代码长点么,又多占不了几k。
作者: 2011hwo1    时间: 2013-3-18 15:04
  1. @echo off
  2. color 3f
  3. title IP设置
  4. MODE con: COLS=80 lines=30
  5. set 自动备份=           已经备份首次IP地址到D:\本机IP备份.txt
  6. @ if exist D:\本机IP备份.txt goto menu
  7. ipconfig /all >D:\本机IP备份.txt
  8. set 自动备份=           提示:自动备份IP到D:\本机IP备份.txt
  9. :menu
  10. cls
  11. echo.
  12. echo              "本地连接" IP地址设置
  13. echo.
  14. echo            当前时间:%date% %time:~0,-3%
  15. echo.
  16. echo.
  17. echo            【1】设置192.168.1.? (电信)
  18. echo.
  19. echo            【2】设置192.168.1.? (联通)
  20. echo.
  21. echo            【3】设置为自动获取
  22. echo.
  23. echo            【0】退出
  24. echo.
  25. echo %自动备份%
  26. echo.
  27. echo.
  28. Set /p clearslt=请输入您的选择(1/2/3/0):
  29. If "%clearslt%"=="3" Goto xpip3
  30. If "%clearslt%"=="0" exit
  31. set   a=192.168.1.
  32. set /a b=%random%%%253+2
  33. set  MASK=255.255.255.0
  34. set  INTERFACE=本地连接
  35. set /a  i+=1
  36. echo.
  37. echo.
  38. echo            正在将IP地址更改为%a%%b%,请稍等。。。
  39. netsh interface ip set address name="%INTERFACE%" source=static addr=%a%%b% mask=%MASK%
  40. echo.
  41. echo            开始设置网关。。。。
  42. netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
  43. echo.
  44. If "%clearslt%"=="2" Goto xpip2
  45. :xpip1
  46. echo            开始设置DNS服务器地址。。。
  47. netsh interface ip set dns name="本地连接" source=static addr=202.100.128.68
  48. netsh interface ip add dns name="本地连接" addr=202.100.128.68 index=2
  49. netsh interface ip add dns name="本地连接" addr=202.100.138.68 index=3
  50. echo.
  51. echo      IP地址设置完成
  52. cls
  53. echo.
  54. echo.
  55. echo.
  56. echo.
  57. echo.
  58. echo.
  59. echo.
  60. echo.
  61. echo.
  62. echo.
  63. echo            设置电信IP,设置完成!
  64. echo.
  65. echo
  66. echo.
  67. echo             请按任意键退出 。。。
  68. PAUSE >NUL 2>NUL
  69. exit

  70. :xpip2
  71. echo            开始设置DNS服务器地址。。。
  72. netsh interface ip set dns name="本地连接" source=static addr=221.207.58.58
  73. netsh interface ip add dns name="本地连接" addr=221.207.58.58 index=2
  74. netsh interface ip add dns name="本地连接" addr=221.207.58.68 index=3
  75. netsh interface ip set address name="本地连接" gateway=192.168.1.1 gwmetric=0
  76. echo.
  77. echo      IP地址设置完成
  78. cls
  79. echo.
  80. echo.
  81. echo.
  82. echo.
  83. echo.
  84. echo.
  85. echo.
  86. echo.
  87. echo.
  88. echo.
  89. echo            设置联通IP,设置完成!
  90. echo.
  91. echo
  92. echo.
  93. echo            请按任意键退出 。。。
  94. PAUSE >NUL 2>NUL
  95. exit

  96. :xpip3
  97. echo.
  98. echo            IP自动设置开始....
  99. echo.
  100. echo            自动获取IP地址....
  101. netsh interface ip set address "本地连接" source = dhcp
  102. echo            自动获取DNS服务器....
  103. netsh interface ip set dns name = "本地连接" source = dhcp
  104. cls
  105. echo.
  106. echo.
  107. echo.
  108. echo.
  109. echo.
  110. echo.
  111. echo.
  112. echo.
  113. echo.
  114. echo.
  115. echo            设置自动获取IP,设置完成!
  116. echo.
  117. echo
  118. echo.
  119. echo            请按任意键退出 。。。
  120. PAUSE >NUL 2>NUL
  121. exit
复制代码

楼主的代码 set /a b=%random%%%255+2得到的最大的数是256,而子网掩码255.255.255.0最大的ip地址后缀是254因此会出错,而xp和win7的cmd在这个批处理里面只是xp少了个CHOICE文件,依次没有必要判断是xp还是win7,所以精简如上面的代码
作者: freesoft00    时间: 2013-3-18 16:12
只能 本地连接 如果可以列出所有链接然后选择设置哪个就好了。
作者: ydyengineer    时间: 2013-12-14 23:46

@echo off
title copyright ydy win8专用
color fc
echo.
:start
echo.
echo ▁▂▃▄▅▆▇█Windows 8
echo ________________________________________________________________________________
echo.
echo       无线连接请按 1   有线连接请按 2   手动模式请按 3   自动模式请按 4
echo ________________________________________________________________________________
echo.
echo.
echo.
set var=
set /p var=.请于1,2,3,4中选择你要的操作\_
echo.
if "%var%"==" " goto ts
if "%var%"=="1" goto 1
if "%var%"=="2" goto 2
if "%var%"=="3" goto 3
if "%var%"=="4" goto 4
cls
:ts
mshta vbscript:msgbox("请正确操作,询问--QQ1121778043",64,"杨多玉工作室")(window.close)
cls
goto start
:1
netsh interface ip set address name="Wi-Fi" source=static addr=192.168.1.188 mask=255.255.255.0 gateway=192.168.1.1 1
netsh interface ip set dns name="Wi-Fi" source=static addr=202.96.209.5
cls
mshta vbscript:msgbox("操作成功",64,"杨多玉工作室")(window.close)
goto start
echo.
:2
netsh interface ip set address name="以太网" source=static addr=192.168.1.188 mask=255.255.255.0 gateway=192.168.1.1 1
netsh interface ip set dns name="以太网" source=static addr=202.96.209.5
cls & goto start
:3
echo.
echo.
set /p sd=.请根据自己的路由器型号指定网段\_
netsh interface ip set address name="以太网" source=static addr=192.168.%sd%.188 mask=255.255.255.0 gateway=192.168.%sd%.1 1
netsh interface ip set dns name="以太网" source=static addr=202.96.209.5
cls
mshta vbscript:msgbox("已成功配置本地连接!若是无线用户请继续,否则直接关闭DOS窗口",64,"杨多玉工作室")(window.close)
netsh interface ip set address name="Wi-Fi" source=static addr=192.168.%sd%.189 mask=255.255.255.0 gateway=192.168.%sd%.1 1
netsh interface ip set dns name="Wi-Fi" source=static addr=202.96.209.5
cls
mshta vbscript:msgbox("操作成功",64,"杨多玉工作室")(window.close)
cls
goto start
:4
netsh interface ip set address name="以太网" source=dhcp
netsh interface ip set dns name="以太网" source=static addr=202.96.209.5
cls
mshta vbscript:msgbox("已成功配置本地连接!若是无线用户请继续,否则直接关闭DOS窗口",64,"杨多玉工作室")(window.close)
netsh interface ip set address name="Wi-Fi" source=dhcp
netsh interface ip set dns name="Wi-Fi" source=static addr=202.96.209.5
cls
mshta vbscript:msgbox("操作成功",64,"杨多玉工作室")(window.close)





欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3