批处理脚本 - 查找操作系统版本信息 - 可变输出

时间:2013-08-29 14:15:19

标签: windows variables batch-file version

我有一个完美的脚本。

 if not exist %SystemRoot%\system32\systeminfo.exe goto warnthenexit

 systeminfo | find "OS Name" > osname.txt

 FOR /F "usebackq delims=: tokens=2" %%i IN (osname.txt) DO set vers=%%i

 echo %vers% | find "Windows 7" > nul

 if %ERRORLEVEL% == 0 goto VERSION_7

然而,当我尝试打印结果时:

Echo Current OS:%vers% - 64 Bit

它真的打印结果!差距很大。像这样:

Current OS:                   Microsoft Windows 7 Enterprise  - 64 Bit

有谁知道为什么?或者我如何消除这个巨大的差距?

万分感谢!

2 个答案:

答案 0 :(得分:1)

我知道你的剧本“完美无瑕”,但效率不高。

SYSTEMINFO需要花费大量时间,可以避免使用osname.txt

检查:

FOR /F "TOKENS=1,* DELIMS==" %%u IN ('WMIC OS GET CAPTION /VALUE') DO IF /I "%%u"=="Caption" SET vers=%%v

答案 1 :(得分:0)

更改

FOR /F "usebackq delims=: tokens=2" %%i IN (osname.txt) DO set vers=%%i

FOR /F "usebackq delims=  tokens=2" %%i IN (osname.txt) DO set vers=%%i

*在delims之后将:更改为%空间%...