CMD/Batch 获取活动接口名称作为变量
CMD/Batch get active interface name as variable
我目前很难弄清楚如何将活动接口名称作为变量输出,以便稍后在代码中使用。
我一直在阅读 here 一些内容,如何将 cmd 输出用作变量,但我需要有效的特定名称。
我当前的代码:
@echo off
netsh interface show interface
FOR /F "tokens=* USEBACKQ" %%F IN (`netsh interface show interface`) DO (
SET var=%%F
)
ECHO %var%
Pause
其中显示此图像:
我们可以看到,由于
netsh interface show interface
,显示两个已连接的接口和两个未连接的接口。但是,我如何获得 f.ex。
以太网 2 和 WiFi 仅作为变量,如 %%V ?
获取所有已连接接口的名称:
FOR /F "tokens=3,*" %%A IN ('netsh interface show interface^|find "Connected"') DO echo %%B
注意:这取决于语言。
对于独立于语言的解决方案,请使用 wmic
(它有自己的陷阱和怪癖):
for /f "tokens=2 delims==" %%a in ('wmic nic where (NetConnectionStatus^=2^) get name /value') do (
for /f "delims=" %%b in ("%%a") do echo %%b
)
内部for
是为了处理难看的wmic
行尾
因为 WMIC 的输出有 'ugly' <CR><CR><LF>
行结尾,而 NetConnectionID
的值通常会有不需要的尾随空格,我建议使用更像这样的东西来检索仅连接的网络适配器作为变量:
@Echo Off
Set "i=0"
For /F "Skip=1Delims=" %%A In (
'WMIC NIC Where "NetConnectionStatus=2" Get NetConnectionID'
) Do For /F "Delims=" %%B In ("%%A") Do Call :Sub %%B
Set NIC[
Timeout -1
Exit/B
:Sub
Set/A i+=1
Set "NIC[%i%]=%*"
我目前很难弄清楚如何将活动接口名称作为变量输出,以便稍后在代码中使用。 我一直在阅读 here 一些内容,如何将 cmd 输出用作变量,但我需要有效的特定名称。
我当前的代码:
@echo off
netsh interface show interface
FOR /F "tokens=* USEBACKQ" %%F IN (`netsh interface show interface`) DO (
SET var=%%F
)
ECHO %var%
Pause
其中显示此图像:
netsh interface show interface
,显示两个已连接的接口和两个未连接的接口。但是,我如何获得 f.ex。 以太网 2 和 WiFi 仅作为变量,如 %%V ?
获取所有已连接接口的名称:
FOR /F "tokens=3,*" %%A IN ('netsh interface show interface^|find "Connected"') DO echo %%B
注意:这取决于语言。
对于独立于语言的解决方案,请使用 wmic
(它有自己的陷阱和怪癖):
for /f "tokens=2 delims==" %%a in ('wmic nic where (NetConnectionStatus^=2^) get name /value') do (
for /f "delims=" %%b in ("%%a") do echo %%b
)
内部for
是为了处理难看的wmic
行尾
因为 WMIC 的输出有 'ugly' <CR><CR><LF>
行结尾,而 NetConnectionID
的值通常会有不需要的尾随空格,我建议使用更像这样的东西来检索仅连接的网络适配器作为变量:
@Echo Off
Set "i=0"
For /F "Skip=1Delims=" %%A In (
'WMIC NIC Where "NetConnectionStatus=2" Get NetConnectionID'
) Do For /F "Delims=" %%B In ("%%A") Do Call :Sub %%B
Set NIC[
Timeout -1
Exit/B
:Sub
Set/A i+=1
Set "NIC[%i%]=%*"