Windows 10平板批量脚本:如何获取以太网适配器名并存入变量?
解决Windows 10平板批量获取以太网适配器名称的问题
嘿,这个场景我之前帮客户批量配置平板时碰到过,给你几个靠谱的解决方案,顺便解答你关于WMIC的疑问:
首先:WMIC在Windows 10上完全可用
虽然微软从Windows 11开始把WMIC标记为弃用,但Windows 10系统里它依然是稳定可用的工具,用来查询硬件信息非常方便。
方案1:优化你现有的netsh命令(轻量高效)
你原本的netsh命令会输出所有网络接口的名称,包括WiFi,所以只需要加个过滤条件,只保留Type为Ethernet的接口就行。这里是修改后的批处理脚本:
@echo off setlocal enabledelayedexpansion set "targetEthernet=" :: 遍历所有接口,过滤Type为Ethernet的条目 for /F "skip=3 tokens=1,3*" %%G in ('netsh interface show interface') do ( :: 不区分大小写判断Type列是否为Ethernet if /I "%%G"=="Ethernet" ( set "targetEthernet=%%H" :: 如果只需要第一个以太网适配器,直接跳出循环 goto :foundAdapter ) ) :foundAdapter if defined targetEthernet ( echo 找到目标以太网适配器:!targetEthernet! :: 这里可以添加你的配置命令,比如设置IP: :: netsh interface ip set address "!targetEthernet!" static 192.168.1.100 255.255.255.0 192.168.1.1 ) else ( echo 未找到可用的以太网适配器 ) endlocal
脚本说明:
skip=3:跳过netsh输出的前三行表头tokens=1,3*:取第一列(Type)和从第三列开始的完整名称(因为适配器名称可能带空格,比如Ethernet 8)if /I "%%G"=="Ethernet":不区分大小写匹配以太网类型,避免大小写差异问题goto :foundAdapter:找到第一个以太网就停止遍历,适合单以太网的平板;如果平板可能有多以太网(比如扩展坞),可以去掉这行来批量处理所有以太网
方案2:用WMIC精准定位(更可靠)
如果需要更精准地过滤物理以太网(排除虚拟以太网适配器),WMIC是更好的选择。以太网适配器的AdapterTypeID固定为6,我们可以用这个条件来筛选:
@echo off setlocal enabledelayedexpansion set "targetEthernet=" :: 查询所有已启用且有连接名称的以太网适配器 for /F "skip=1 tokens=*" %%G in ('wmic nic where "AdapterTypeID=6 and NetConnectionID is not null" get NetConnectionID /value') do ( :: 处理WMIC输出的空白行和编码问题 for /F "tokens=2 delims==" %%H in ("%%G") do ( set "targetEthernet=%%H" goto :foundAdapter ) ) :foundAdapter if defined targetEthernet ( echo 找到目标以太网适配器:!targetEthernet! ) else ( echo 未找到可用的以太网适配器 ) endlocal
脚本说明:
AdapterTypeID=6:精准匹配以太网类型NetConnectionID is not null:排除没有显示名称的适配器(比如未启用的虚拟网卡)- 嵌套
for /F:解决WMIC输出的Unicode转码和空白行问题
对比两个方案
- netsh方案:执行速度更快,输出处理简单,适合大多数单以太网平板的场景
- WMIC方案:过滤更精准,能排除虚拟适配器,适合复杂网络环境的设备
内容的提问来源于stack exchange,提问作者br34k
相关产品推荐
相关产品推荐

