0

我有一个完美运行的脚本。

 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

有谁知道为什么?或者我怎样才能消除大的差距?

太感谢了!

4

2 回答 2

1

我知道您的脚本“完美运行”,但效率不高。

SYSTEMINFO需要很多时间,并且osname.txt可以避免。

查看:

FOR /F "TOKENS=1,* DELIMS==" %%u IN ('WMIC OS GET CAPTION /VALUE') DO IF /I "%%u"=="Caption" SET vers=%%v
于 2013-08-30T09:07:45.180 回答
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 之后将 : 更改为 %space% ...

于 2013-08-29T14:28:37.040 回答