Board logo

标题: [网络连接] 批处理网络设置如何完善? [打印本页]

作者: sigma39    时间: 2011-5-24 10:47     标题: 批处理网络设置如何完善?

  1. @echo off
  2. mode con cols=80 lines=19 &color 1f
  3. title Windows系统网络环境切换工具
  4. echo.
  5. echo *******************************************************************************
  6. echo **************************Windows系统网络环境切换工具**************************
  7. echo *******************************************************************************
  8. echo.
  9. echo.
  10. pause
  11. goto system
  12. :system
  13. cls
  14. echo.
  15. echo 请选择系统(1-3):
  16. echo.
  17. echo 1 WINDOWS XP
  18. echo.
  19. echo 2 WINDOWS 7
  20. echo.
  21. echo 3 放弃选择,退出
  22. echo.
  23. set /p select=请选择系统
  24. if "%select%"=="1" goto menu
  25. if "%select%"=="2" goto menu7
  26. if "%select%"=="3" goto exit2
  27. goto systemerror
  28. :systemerror
  29. cls
  30. echo 选择无效,请重新选择
  31. echo.
  32. echo 请选择系统(1-3):
  33. echo.
  34. echo 1 WINDOWS XP
  35. echo.
  36. echo 2 WINDOWS 7
  37. echo.
  38. echo 3 放弃选择,退出
  39. echo.
  40. set /p select=请选择系统
  41. if "%select%"=="1" goto menu
  42. if "%select%"=="2" goto menu7
  43. if "%select%"=="3" goto exit2
  44. goto systemerror
  45. :menu
  46. FOR /F "tokens=2*" %%i IN ('ipconfig/all^|find /i "Ethernet adapter "') DO set name=%%j
  47. FOR /F "tokens=1* delims=:" %%i in ("%name%") do set 网卡名称=%%i
  48. @echo off
  49. cls
  50. set a=^set /p=■%b%^<nul^&ping/n 0 127.1^>nul^&
  51. echo.
  52. echo 正在获取网卡信息,请稍后
  53. echo.
  54. echo ┌──────────────────────────────────────┐
  55. set/p=  <nul&%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%
  56. echo 100%%
  57. echo └──────────────────────────────────────┘
  58. set b=
  59. set a=■
  60. set /a z=100
  61. echo 获取完成
  62. echo.
  63. echo.
  64. echo 当前活动的网络适配器名称为 "%网卡名称%". 本程序将对此网络适配器进行设置
  65. echo.
  66. echo.
  67. pause
  68. cls
  69. echo.
  70. echo 请选择网络类型(1-4):
  71. echo.
  72. echo 1 切换到静态IP
  73. echo.
  74. echo 2 切换到动态IP
  75. echo.
  76. echo 3 返回系统选择
  77. echo.
  78. echo 4 放弃选择,退出
  79. set /p select=
  80. if "%select%"=="1" goto jt
  81. if "%select%"=="2" goto DHCP
  82. if "%select%"=="3" goto system
  83. if "%select%"=="4" goto exit2
  84. goto menuerror
  85. :menuerror
  86. cls
  87. echo 选择无效,请重新选择
  88. echo.
  89. echo 请选择网络类型(1-4):
  90. echo.
  91. echo 1 切换到静态IP
  92. echo.
  93. echo 2 切换到动态IP
  94. echo.
  95. echo 3 返回系统选择
  96. echo.
  97. echo 4 放弃选择,退出
  98. set /p select=
  99. if "%select%"=="1" goto jt
  100. if "%select%"=="2" goto DHCP
  101. if "%select%"=="3" goto system
  102. if "%select%"=="4" goto exit2
  103. goto menuerror
  104. :jt
  105. cls
  106. echo 设置静态IP
  107. echo 正在设置 IP…设置网关…设置子网掩码
  108. netsh interface ip set address name="%网卡名称%" source=static addr=192.168.101.4 mask=255.255.255.0
  109. netsh interface ip set address name="%网卡名称%" source=static gateway=192.168.101.1
  110. echo 正在设置 DNS…
  111. netsh interface ip set dns name="%网卡名称%" source=static addr=8.8.8.8 register=PRIMARY
  112. netsh interface ip add dns name="%网卡名称%" addr=8.8.4.4 index=2
  113. echo 正在刷新设置……
  114. ipconfig /flushdns
  115. goto exit
  116. :DHCP
  117. cls
  118. echo 设置动态IP
  119. echo 正在设置 IP…设置网关…设置子网掩码
  120. netsh interface ip set address name="%网卡名称%" source=dhcp
  121. echo 设置 DNS……
  122. netsh interface ip set dns name="%网卡名称%" source=dhcp
  123. echo 正在刷新设置……
  124. ipconfig /flushdns
  125. goto exit
  126. :menu7
  127. FOR /F "tokens=2*" %%i IN ('ipconfig/all^|find /i "以太网适配器 "') DO set name=%%j
  128. FOR /F "tokens=1* delims=:" %%i in ("%name%") do set 网卡名称=%%i
  129. @echo off
  130. cls
  131. set a=^set /p=■%b%^<nul^&ping/n 0 127.1^>nul^&
  132. echo.
  133. echo 正在获取网卡信息,请稍后
  134. echo.
  135. echo ┌──────────────────────────────────────┐
  136. set/p=  <nul&%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%%a%
  137. echo 100%%
  138. echo └──────────────────────────────────────┘
  139. set b=
  140. set a=■
  141. set /a z=100
  142. echo 获取完成
  143. echo.
  144. echo.
  145. echo 当前活动的网络适配器名称为 "%网卡名称%". 本程序将对此网络适配器进行设置
  146. echo.
  147. echo.
  148. pause
  149. cls
  150. echo.
  151. echo 请选择网络类型(1-4):
  152. echo.
  153. echo 1 切换到静态IP
  154. echo.
  155. echo 2 切换到动态IP
  156. echo.
  157. echo 3 返回系统选择
  158. echo.
  159. echo 4 放弃选择,退出
  160. set /p select=
  161. if "%select%"=="1" goto jt7
  162. if "%select%"=="2" goto DHCP7
  163. if "%select%"=="3" goto system
  164. if "%select%"=="4" goto exit2
  165. goto menu7error
  166. :menu7error
  167. cls
  168. echo 选择无效,请重新选择
  169. echo.
  170. echo 请选择网络类型(1-4):
  171. echo.
  172. echo 1 切换到静态IP
  173. echo.
  174. echo 2 切换到动态IP
  175. echo.
  176. echo 3 返回系统选择
  177. echo.
  178. echo 4 放弃选择,退出
  179. set /p select=
  180. if "%select%"=="1" goto jt7
  181. if "%select%"=="2" goto DHCP7
  182. if "%select%"=="3" goto system
  183. if "%select%"=="4" goto exit2
  184. goto menu7error
  185. :jt7
  186. cls
  187. echo 设置静态IP
  188. echo 正在设置 IP…设置网关…设置子网掩码
  189. netsh interface ipv4 set address "%网卡名称%" static 192.168.101.4 255.255.255.0 192.168.101.1
  190. echo 正在设置 DNS…
  191. netsh interface ipv4 set dns name="%网卡名称%" source=static addr=8.8.8.8
  192. netsh interface ipv4 add dns name="%网卡名称%" addr=8.8.4.4 index=2
  193. echo 正在刷新设置……
  194. ipconfig /flushdns
  195. goto exit
  196. :DHCP7
  197. cls
  198. echo 设置动态IP
  199. echo 正在设置 IP…设置网关…设置子网掩码
  200. netsh interface ipv4 set address "%网卡名称%" dhcp
  201. echo 设置 DNS……
  202. netsh interface ipv4 set dns "%网卡名称%" dhcp
  203. echo 正在刷新设置……
  204. ipconfig /flushdns
  205. goto exit
  206. :exit
  207. cls
  208. @echo off
  209. set c=^set /p=■%d%^<nul^&ping/n 0 127.1^>nul^&
  210. echo.
  211. echo 程序正在设置网络,请稍后
  212. echo.
  213. echo ┌──────────────────────────────────────┐
  214. set/p=  <nul&%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%
  215. echo 100%%
  216. echo └──────────────────────────────────────┘
  217. set d=
  218. set c=■
  219. set /c z=100
  220. goto exit1
  221. :exit1
  222. echo.
  223. echo.
  224. echo.
  225. echo ************恭喜!网络设置以完成。
  226. echo.
  227. echo.
  228. echo.
  229. echo.
  230. pause
  231. exit
  232. :exit2
  233. cls
  234. echo 程序即将退出
  235. pause
  236. exit
复制代码
这是我参考了一些批处理写出来的网络设置工具,引用了不少代码,功能相对比较完善,界面也较美观,适用于WINXP和WIN7,但有一些问题没有解决,所以恳请大家帮忙完善这个批处理

1,menu7这段中
FOR /F "tokens=2*" %%i IN ('ipconfig/all^|find /i "以太网适配器 "') DO set name=%%j
FOR /F "tokens=1* delims=:" %%i in ("%name%") do set 网卡名称=%%i
无法正确获取WIN7的网络连接名称,求高人帮忙修改

2,静态IP只能有一个,设置多台电脑时要重新修改代码,极其不方便,能不能让用户手工输入IP的第三段X和第四段Y,并自动生成网关IP 192.168.X.1
DNS也类似,内置数个常用DNS,也可让用户手工输入(Google的DNS最近很不稳定)

各位大虾,小弟初来乍到,恳请各位大虾照顾下
作者: sigma39    时间: 2011-5-25 22:16

没人能帮忙吗




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