【发布时间】:2015-12-09 06:24:00
【问题描述】:
不过,我一直在成功使用此代码,希望在执行 netsh 命令重命名 NIC 时对其进行调整和使用 - 尽管在编写此代码时我不确定它是否是最佳路线了。
SET _OSVer=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" EQU "5.2" SET _OSVer=2003
IF "%%b.%%c" EQU "6.0" SET _OSVer=2008
IF "%%b.%%c" EQU "6.1" SET _OSVer=2008R2
IF "%%b.%%c" EQU "6.2" SET _OSVer=2012
IF "%%b.%%c" EQU "6.3" SET _OSVer=2012R2
)
IF "%_OSVer%" EQU "2003" (ECHO %_OSVer% )
IF "%_OSVer%" EQU "2008" (ECHO %_OSVer% )
IF "%_OSVer%" EQU "2008R2" (ECHO %_OSVer% )
IF "%_OSVer%" EQU "20012" (ECHO %_OSVer% )
IF "%_OSVer%" EQU "20012R2" (ECHO %_OSVer% )
仅供参考:2012 年之前的网络标签是本地连接,2012 年是以太网。
我要执行以下命令
netsh interface set interface name = "%NETWORKNAME%" newname = "network-storage" >nul 2>&1
我正在考虑基于 OSversion %NETWORKNAME% 将被定义为“本地连接”或“以太网”
我可以使用类似的东西
IF "%_OSVer%" EQU "2003" + "2008" + "2008R2" SET Networkname="Local Area Network"
或者有更好的方法吗?
编辑 - 来自 Pauls Feeback,最终代码为
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
)
ECHO %NICNaming%
netsh interface set interface name = "%NICNaming%" newname = "network-storage" >nul 2>&1
if %errorlevel%== 0 (Echo found) ELSE (Echo missing abort)
谢谢 乙
【问题讨论】:
标签: variables batch-file set environment netsh