我有一个完美的脚本。
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
有谁知道为什么?或者我如何消除这个巨大的差距?
万分感谢!
答案 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之后将:更改为%空间%...