【问题标题】:Identify NIC Name from netsh and do something从 netsh 识别 NIC 名称并做一些事情
【发布时间】:2015-09-13 10:03:25
【问题描述】:

我正在扩展我之前的 posts 之一。

这样做的目的是仔细检查网络标签是否存在,如果是,脚本将继续应用 IP 详细信息,如果不是,那么我们需要检查 devcon 是否运行失败或虚拟网卡没有正确添加。

仅供参考:这是用于虚拟机迁移,迁移后没有网卡,我们运行 devcon 清除所有以前的适配器/硬件并添加新的网卡,这些网卡应该按照正确的顺序(本地连接,本地区域连接 2 和本地连接 3),但由于 Windows 并非总是如此:(因此需要进行一些健全性检查。

我目前的情况如下。

SET NICNaming=OTHER
FOR /F "Tokens=2 Delims=[]" %%a IN ('VER') DO SET _VerNo=%%a
FOR /F "Tokens=2-3 Delims=. " %%b IN ("%_VerNo%") DO (
    IF "%%b.%%c" LEQ  "6.1" SET NICNaming=Local Area Connection
    IF "%%b.%%c" GEQ  "6.2" SET NICNaming=Ethernet

)

for /f "skip=2 tokens=3*" %%A in ('netsh interface show interface') do (

IF "%%B" EQU "%NICNaming%" (ECHO %NICNaming% FOUND!) ELSE (ECHO %NICNaming% MISSING!)
IF "%%B" EQU "%NICNaming% 2" (ECHO %NICNaming% 2 FOUND!) ELSE (ECHO %NICNaming% 2 MISSING!)
IF "%%B" EQU "%NICNaming% 3" (ECHO %NICNaming% 3 FOUND!) ELSE (ECHO %NICNaming% 3 MISSING!)
)

它的输出有点正确,但信息却加倍,就像这样 - 有什么想法吗?

Local Area Connection MISSING!
Local Area Connection 2 FOUND!
Local Area Connection 3 MISSING!
Local Area Connection MISSING!
Local Area Connection 2 MISSING!
Local Area Connection 3 MISSING!

因此,理想情况下,一旦它正常运行,并且如果添加的 3 个新 NIC 中的任何一个丢失或未正确命名,则会警告用户以修复问题。

谢谢 乙

编辑:Wox 的响应已修复问题 - 以下代码正确!

SET NICNaming=OTHER
FOR /F "Tokens=2 Delims=[]" %%a IN ('VER') DO SET _VerNo=%%a
FOR /F "Tokens=2-3 Delims=. " %%b IN ("%_VerNo%") DO (
    IF "%%b.%%c" LEQ  "6.1" SET NICNaming=Local Area Connection
    IF "%%b.%%c" GEQ  "6.2" SET NICNaming=Ethernet

)

for /f "skip=2 tokens=3*" %%A in ('netsh interface show interface') do (

IF "%%B" EQU "%NICNaming%" (ECHO %NICNaming% FOUND!) ELSE (ECHO %NICNaming% MISSING!)
IF "%%B" EQU "%NICNaming% 2" (ECHO %NICNaming% 2 FOUND!) ELSE (ECHO %NICNaming% 2 MISSING!)
IF "%%B" EQU "%NICNaming% 3" (ECHO %NICNaming% 3 FOUND!) ELSE (ECHO %NICNaming% 3 MISSING!)
Goto Done
)
:Done

【问题讨论】:

    标签: batch-file networking netsh


    【解决方案1】:

    显然netsh interface show interface 显示了两行,所以最后一个循环执行了两次。

    在一次迭代后跳出循环:

    for ......... (
        ..........
        goto done
    )
    :done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-29
      • 1970-01-01
      • 2021-10-17
      • 2017-08-24
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 2022-11-11
      相关资源
      最近更新 更多