我有批处理文件:
@echo off
set vers=0.0
FOR /F "USEBACKQ" %%A IN (`wmic datafile where name^="C:\\Windows\\System32\\msiexec.exe" get Version`) do (set vers=%%A)
echo %vers%
@pause
Windows XP(SP2):
3.0.3790.2180
Windows Vista(SP1),Windows XP(x64):
ECHO is off.
如何在两种情况下都解决该批处理文件正确执行的问题?
@echo off
setlocal enableextensions
set vers=0.0
FOR /F "tokens=2 delims== usebackq" %%A IN (
`wmic datafile where name^="C:\\Windows\\System32\\msiexec.exe" get Version /value ^| find "="`
) do set "vers=%%A"
echo %vers%
endlocal
pause
它只是要求wmic以以下格式输出数据key=value
,过滤wmic命令的输出,仅搜索带有=
该字符的行,并使用此字符作为标记定界符来分割行。第一个标记(键)被忽略,第二个标记(值)被分配给vers
变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句