我目前很难弄清楚如何将活动接口名称作为变量输出,以后可以在代码中使用。 我一直在阅读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界面show interface
,显示了两个连接的接口和两个未连接的接口。但是,我怎么得到f.ex. 以太网2和WiFi作为变量只有%% V?
答案 0 :(得分:1)
获取所有连接接口的名称:
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
行结尾
答案 1 :(得分:0)
因为WMIC的输出有“丑陋”的声音。 <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%]=%*"