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

[网络连接] [已解决]批处理如何判断本地连接的名称并修改DNS

看了网上很多脚本,都是针对本地连接来更改的,如果我的连接名不是本地连接,或者有多个连接名,怎样才实现自动判断当前使用的连接名称并进行dns的修改呢?希望各位大侠帮忙

[ 本帖最后由 喀喇喀喇 于 2010-1-31 16:41 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

已经解决了,呵呵

  1. @echo off
  2. @Setlocal ENABLEDELAYEDEXPANSION
  3. @set reg_path_id=
  4. @set reg_path=
  5. @set nic_id=
  6. @set nic_name=
  7. echo 获取本地网络连接名称...
  8. @for /f "usebackq tokens=7 delims=\" %%i in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"`) do (
  9. set reg_path_id=%%i
  10. set "reg_path=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\!reg_path_id!"
  11. for /f "usebackq tokens=3" %%j in (`"reg query "!reg_path!" | find /i "ServiceName""`) do (
  12. set NIC_id=%%j
  13.   for /f "usebackq skip=2 tokens=3" %%k in (`reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\!nic_id!" /v NTEContextList`) do (if not "%%k" == "\0" (Goto :nic_name))
  14. ))
  15. Goto :EOF
  16. :nic_name
  17. @if exist %temp%\reg.temp (del /q %temp%\reg.temp >nul)
  18. @reg export "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%nic_id%\Connection" %temp%\reg.temp >nul
  19. for /f "usebackq tokens=2 delims==" %%l in (`find /i "Name" %temp%\reg.temp`) do (
  20. set nic_name=%%l
  21. set nic_name=!nic_name:"=!
  22. )
  23. @if exist %temp%\reg.temp (del /q %temp%\reg.temp >nul)
  24. echo 您的网卡连接名称为:%nic_name%
  25. echo.
  26. echo 开始自动设置DNS地址...
  27. echo.
  28. echo 自动设置首选DNS地址(10.1.1.3)....
  29. Netsh interface IP set dns "%nic_name%" source=static 10.1.1.3 register=primary
  30. echo 自动设置备用DNS地址(10.1.1.4)....
  31. Netsh interface IP add dns "%nic_name%" 10.1.1.4
  32. echo.
  33. Echo 设置成功 按任一键后,就可以使用了……
  34. Pause>nul
复制代码

TOP

返回列表