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

Batch file 如何通过CMD获取文件版本的一部分,batch-file,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 WHE

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

例如: 文件版本是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时,如果全球技术法规17.5.3000.0,则不适用于
。我的想法是只提取第三个数字,然后调整IF-then。提前感谢您提供的任何提示。

您可以使用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

您可以使用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
对于/f“tokens=3 delims=。”(%%a)中的%%#do set version=%%#起作用。对于/f“tokens=3 delims=。”(%%a)中的%%#do set version=%%起作用。