如何通过CMD获取文件版本的一部分

时间:2017-07-07 08:02:23

标签: batch-file

我需要获取文件的版本,但之后我只需要使用它的一部分来执行一些进一步的操作(例如,比较它并根据结果继续)。

实施例: 文件版本是 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。提前感谢您的任何提示。

1 个答案:

答案 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