Board logo

标题: [网络连接] 也发个网络设置相关批处理代码 [打印本页]

作者: terse    时间: 2014-10-12 00:53     标题: 也发个网络设置相关批处理代码

代码不是考虑很全面,权当参考,
由于测试环境不全;代码不免存在问题;望指正。
  1. @echo off
  2. set "str=DefaultIPGateway^,IPAddress^,DNSServerSearchOrder^,IPSubnet^,DHCPEnabled"
  3. for /f "skip=1tokens=1*" %%i in ('wmic Nic where "Manufacturer<>'Microsoft' and NetConnectionStatus='2'" get Index^,NetConnectionID^') do (
  4.     setlocal enabledelayedexpansion
  5.     for /f %%j in ("%%j") do (
  6.         set $%%i=%%j&echo 适配器 Index:[%%i]  : 适配器名:"%%j"
  7.         for /f "tokens=1-3delims={}," %%a in ('wmic Nicconfig where "Index='%%i'" get %str% /value') do (
  8.             for /f %%c in (%%c) do if /i "%%a" == "DNSServerSearchOrder=" set "DNS2=%%c"
  9.             for /f %%c in ("%%a%%~b") do set "%%c"
  10.         )
  11.         echo;
  12.         if /i "!DHCPEnabled!" == "TRUE" (
  13.            echo 获取IP地址模式:自动
  14.         ) else echo 获取IP地址模式:手动
  15.           echo ip地址: !IPAddress!  &  echo 子网掩码: !IPSubnet!
  16.           echo 默认网关: !DefaultIPGateway!  & echo 主DNS: !DNSServerSearchOrder!
  17.           IF defined dns2 echo DNS2 :!DNS2!
  18.     )
  19.     endlocal
  20. )
  21. echo,
  22. :start
  23. set/pIndex=输入 适配器 对应 Index  退出 q
  24. if  /i "%Index%" == "q" exit
  25. if not defined $%Index% goto start
  26. set/ps=输入 t 动态获取IP地址   f 手动获取IP地址
  27. goto %s%
  28. :t
  29. :动态获取IP地址
  30. wmic path Win32_NetworkAdapterConfiguration.index=%Index% call enabledhcp
  31. wmic path Win32_NetworkAdapterConfiguration.index=%Index% call SetDNSServerSearchOrder()
  32. pause & exit
  33. :f
  34. :手动获取IP地址
  35. set IP="192.168.0.10"
  36. set Mask="255.255.255.0"
  37. set Gateway="192.168.0.1"
  38. set DNS="192.168.0.1"
  39. wmic nicconfig where index=%Index% call enablestatic(%ip%),(%Mask%)
  40. wmic nicconfig where index=%Index% call setgateways(%Gateway%)
  41. wmic nicconfig where index=%Index% call setdnsdomain(%DNS%)  
  42. wmic nicconfig where index=%Index% call SetDNSServerSearchOrder(%DNS%)
  43. pause
复制代码

作者: 34205    时间: 2015-2-23 17:26

回复 1# terse


    Windows7下测试通过,获取网络连接名称中,比较完美的方案,楼主知道如何获得网络名称变量吗?
set NetConnectionName_Now=%%j &echo %NetConnectionName_Now%
以上加入07行行不通
作者: snai1    时间: 2021-7-26 12:22

我怎么不能设置呀,只能查看




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