【发布时间】: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