如何获取和使用网络适配器名称?

How to get and use network adapter name?

我正在使用以下脚本:

@echo off
netsh interface show interface | find "Connected"
if errorlevel 1 goto #
netsh interface set interface "Local Area Connection" disabled
goto end
:#
netsh interface set interface "Local Area Connection" enabled
:end

我正在尝试找到一种方法来获取找到的网络适配器的名称并使用该名称而不是 "Local Area Connection"。原因是并不是每个人的适配器都被命名为相同的,我正在尝试尽可能地自动化这个任务。

如何获取找到的网络适配器的名称并使用该名称?

for /F "tokens=4*" %%a in ('netsh interface show interface ^| more +2') do echo %%a %%b

这里有一个更简洁的方法来捕获接口名称。

for /F "skip=3 tokens=3*" %G in ('netsh interface show interface') do echo %%H

综合起来

@echo off
for /F "skip=3 tokens=1,2,3* delims= " %%G in ('netsh interface show interface') DO (
    IF "%%H"=="Disconnected" netsh interface set interface "%%J" enabled
    IF "%%H"=="Connected" netsh interface set interface "%%J" disabled
)
pause

FOR /F 命令正在解析 NETSH 命令的输出。它正在跳过 header 行。然后它将输出分成 4 个元变量。

%%G            %%H            %%I              %%J
Admin State    State          Type             Interface Name
-------------------------------------------------------------------------
Enabled        Disconnected   Dedicated        Wireless Network Connection
Enabled        Connected      Dedicated        Local Area Connection