我需要获取文件的版本,但之后我只需要使用它的一部分来执行一些进一步的操作(例如,比较它并根据结果继续)。
实施例: 文件版本是 17.5.834.0 ,我需要获取和使用的只是 834 号。
我使用以下内容获取数字并使用它:
@echo off
if exist "c:\Program Files\myprg\myfile.exe" SET prgfolder=c:\Program Files\myprg
for /f "usebackq delims=" %%a in (`"WMIC DATAFILE WHERE name='%prgfolder:\=\\%\\myfile.exe' get Version /format:Textvaluelist"`) do (
for /f "delims=" %%# in ("%%a") do set "%%#"
)
echo %version%
if %version% gtr 17.5.3000.0 echo Hello World
回声打印整数,当它是例如17.5.834.0然后它不适用于if gtr 17.5.3000.0
。我的想法是只提取第三个数字然后调整IF。提前感谢您的任何提示。
答案 0 :(得分:0)
您可以使用vbscript获取文件版本。
尝试我的方式:
@echo off
Rem Your file :
Set "File=C:\Program Files\Windows Mail\wabmig.exe"
cd /d "%~dp0"
Echo Set objFSO = CreateObject("Scripting.FileSystemObject")>>Q.vbs
Echo Wscript.Echo objFSO.GetFileVersion("%File%")>>Q.vbs
FOR /F %%A IN ('cscript //nologo Q.vbs') DO Set version=%%A
Del "Q.vbs"
echo %version%
if %version% gtr 17.5.3000.0 echo Hello World