我知道如何获取接口名称
netsh interface show interface
我还知道如何获取 wifi 的名称
netsh wlan show profiles
如果我连接到 Wi-Fi 2 适配器,那么我将连接到其中一个 wlan 配置文件。
我如何才能让相同的配置文件名称与局域网连接?根据我的网络连接设置,它应该是“TP-Link 2.4 2”。但如果我尝试
netsh lan show profiles
但仍然没有以太网的名称。我想知道它在 Windows 10 中进入了哪里,因为我肯定没有输入以太网的名称。
最终目标是打印活动连接名称,因此,如果以太网 2 处于活动状态,则为 TP-Link 2.4 2,如果 wi-fi 处于活动状态,则例如为 TP-Link 2.4
答案1
尝试使用Get-NetAdapter
Powershell v3 中的cmdlet 执行此批处理代码
@echo off
Title Get Net Adapter Index
@for /f "tokens=1 skip=3 delims= " %%a in (
'Powershell -C "Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' } | Select-Object -Property ifIndex"'
) Do (
Set "Index=%%a"
)
echo NetAdapter Index = %Index%
pause
如果您想获取更多信息Interface
,MACAddress
您可以尝试下面的代码:
@echo off
Title Get Net Adapter Index,InterfaceDescription,MacAddress
@for /f "tokens=1,2,3 skip=1 delims=," %%a in (
'Powershell -C "Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' } | Select-Object -Property ifIndex,InterfaceDescription,MacAddress | ConvertTo-Csv -NoTypeInformation"'
) Do (
Set "Index=%%~a"
Set "Interface=%%~b"
Set "MacAddress=%%~c"
)
echo( Index = %Index%
echo( Interface = %Interface%
echo( MacAddress = %MacAddress%
Pause & Exit
答案2
我缺乏在以太网连接上进行测试的手段 - 但是我可以演示捕获和过滤 netsh 命令输出到变量的方法,这是您实现最终目标所需要做的事情。
For /F
允许在命令执行时捕获命令输出- 与条件检查结合的标志变量可以隔离感兴趣的输出部分,或者仅在满足所需条件时定义输出变量。
- 可以使用附加的 for /F 循环来从隔离输出中捕获包含目标值的字符串
@Echo off
IF not "!![" == "[" SETLOCAL enabledelayedexpansion
For /F "Tokens=2,3,4 Delims=[]" %%G in (' Set Connection[ 2^> Nul ')Do Set "Connection[%%G][%%H][%%I]="
(
For /F "Delims=" %%G in ('netsh wlan show interfaces') Do (
Set "Line=%%G"
For /F "Tokens=1* Delims=: " %%i in (' Echo/!Line!^|findstr.exe /LIC:":" 2^> nul ')Do (
Set "%%i=%%j"
)
If /I "!State!" == "Connected" If not "!Profile!" == "" (
Set "Connection[!SSID!][!Name!][!GUID!]=Connected"
Set "State="
Set "Profile="
)))
(For /F "Tokens=2,3,4 Delims=[]" %%G in (' Set Connection[ ')Do (Echo Profile:%%G Type:%%H GUID:%%I)) 2> nul || Echo/No connection active.
示例输出(一个连接,GUID 值根据实际输出修改)
Profile:T3RRY Type:Wi-Fi GUID:379552d8-1472-3b14-bf55-21eeb0c4eb1c