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

[网络连接] [分享]IP获取及自动转换批处理工具

2个小时的成果,大家评评,测试测试 FOR XP,贴错版块了,不好意思
  1. @echo off
  2. mode con: cols=58 lines=50
  3. color 6f
  4. title [IP设置程序] by xieqingx 20100313
  5. cls
  6. @echo.
  7. @echo 正在获取信息....
  8. setlocal EnableDelayedExpansion
  9. cd.>%temp%\IPinfo123.txt
  10. for /f "delims=," %%i in ('ipconfig /all') do (@echo. %%i>>%temp%\IPinfo123.txt
  11. )
  12. echo.
  13. for /f "tokens=3" %%a in ('find /I "Ethernet adapter" %temp%\IPinfo123.txt') do (
  14. set linkN=%%a
  15. set linkN=!linkN::=!
  16. @echo 适配器名称是 !linkN!
  17. )
  18. for /f "tokens=12" %%a in ('find /I "Physical Address" %temp%\IPinfo123.txt') do ( @echo MAC地址是 %%a&&set mac=%%a)
  19. @echo off
  20. setlocal EnableDelayedExpansion
  21. for /f "tokens=14" %%a in ('find /i "Dhcp Enabled" %temp%\IPinfo123.txt') do (
  22. set "dhcp=%%a"
  23. set "dhcp=!dhcp:~0,2!"
  24. if "!dhcp!" equ "No" (
  25. set "dhcp=固定IP设置"
  26. set sta=自动获取IP
  27. set mark=dhcp
  28. ) else (
  29. set "dhcp=自动获取IP"
  30. set sta=固定IP设置
  31. set mark=nodhcp
  32. )
  33. )
  34. for /f "tokens=15" %%a in ('find /I "ip address" %temp%\IPinfo123.txt') do @echo IP是 %%a&&set ip=%%a
  35. for /f "tokens=15" %%a in ('find /I "Subnet Mask" %temp%\IPinfo123.txt') do @echo 子网掩码是 %%a&&set subm=%%a
  36. for /f "tokens=13" %%a in ('find /I "Default Gateway" %temp%\IPinfo123.txt') do @echo 网关是 %%a&&set getway=%%a
  37. for /f "tokens=1,16" %%a in ('findstr /n /c:"DNS Servers" %temp%\IPinfo123.txt') do (
  38. set num=%%a
  39. set num=!num::=!
  40. @echo DNS服务器是 %%b&&set dns1=%%b
  41. )
  42. if not defined num ( echo.&&set "dns1mark=1"&&echo 没有主DNS服务器&&goto :end) else (
  43. for /F %%a in ('findstr ".*" %temp%\IPinfo123.txt') do (set dns2=%%a
  44. )
  45. if /i !dns2!==dns (goto :end ) else (
  46. for /f %%a in ('more +%num% %temp%\IPinfo123.txt') do (
  47. set/a n+=1
  48. if !n!==1 ( set dns2=%%a
  49. if /i !dns2!==lease (goto :end) else (
  50. @echo DNS备选服务器是 !dns2!)
  51. )
  52. )
  53. goto :next))
  54. :end
  55. echo.
  56. set dnsmark=2
  57. @echo 没有备选DNS服务器
  58. :next
  59. echo.&echo.
  60. echo 当前为!dhcp!,请问要转换!sta!方式吗?
  61. echo.
  62. echo.
  63. echo 1、自动转换
  64. echo.
  65. echo 2、不转换
  66. echo.
  67. echo 3、手动设IP
  68. echo.
  69. echo X、退出
  70. echo.
  71. set choice=
  72. set /p choice= 请输入指定功能代码(1/2/3/X):
  73. echo.
  74. if not defined choice cls&&goto next
  75. if /i "%choice:~0,1%"=="X" exit
  76. set "choice=%choice:~0,1%"
  77. if "%choice%"=="1" goto 1
  78. if "%choice%"=="2" goto 2
  79. if "%choice%"=="3" goto 3
  80. :1
  81. @echo 请稍候正在设置
  82. @echo.
  83. if "!mark!"=="dhcp" (
  84. @echo 正在设置ip自动获取.....
  85. netsh interface ip set address name="%linkN%" source=dhcp>nul
  86. @echo 正在设置Dns自动获取.....
  87. netsh interface ip set dns name="%linkN%" source=dhcp register=PRIMARY>nul
  88. @echo 正在设置Wins自动获取.....
  89. netsh interface ip set wins name="%linkN%" source=dhcp>nul
  90. ) else (
  91. @echo 正在设置 ip、submask、getway
  92. netsh interface ip set address name="%linkN%" source=static addr=%IP% mask=%subm% gateway=%getway% gwmetric=0 >nul
  93. if /i "%dns1mark%"=="1" ( @echo 无主要DNS,跳过设置) else (
  94. @echo 正在设置 主DNS
  95. netsh interface ip set dns name="%linkN%" source=static addr=%dns1% register=PRIMARY>nul
  96. )
  97. if /i "%dnsmark%"=="2" ( @echo 无备用DNS,跳过设置) else (
  98. @echo 正在设置 备用DNS
  99. netsh interface ip add dns name="%linkN%" addr=%dns2%>nul
  100. )
  101. @echo 正在设置 Wins
  102. netsh interface ip set wins name="%linkN%" source=static addr=none>nul
  103. )
  104. goto :2
  105. :3
  106. set /p choice2= 确定要手动设置吗?(y/n):
  107. echo.
  108. if not defined choice2 goto 3
  109. set "choice2=%choice2:~0,1%"
  110. if "%choice2%"=="n" (goto 2) else (if "%choice2%"=="y" ( goto next2) else (echo 请输入正确选项&&goto :3))
  111. :next2
  112. set slection1=
  113. set/p slection1= 请输入IP地址:
  114. set slection5=
  115. set/p slection5= 请输入子网掩码地址:
  116. set slection2=
  117. set/p slection2= 请输入网关地址:
  118. set slection3=
  119. set/p slection3= 请输入主dns地址:
  120. set slection4=
  121. set/p slection4= 请输入备选dns地址:
  122. @echo 正在设置.....
  123. netsh interface ip set address name="%linkN%" source=static addr=%slection1% mask=%slection5% gateway=%slection2% gwmetric=0
  124. netsh interface ip set dns name="%linkN%" source=static addr=%slection3% register=PRIMARY
  125. netsh interface ip add dns name="%linkN%" addr=%slection4%
  126. netsh interface ip set wins name="%linkN%" source=static addr=none
  127. :2
  128. @echo.
  129. @echo 完成设置!
  130. @echo.
  131. @echo 按任意键退出本程序
  132. pause>nul
复制代码

[ 本帖最后由 xieqingx 于 2010-3-14 00:54 编辑 ]

很好啊 参考了!!!!

TOP

返回列表