我有一个带版本资源的文件,其中File version/Product version字段已填写。我需要通过BAT文件检索Product version。例如,我有一个ProductVersion为1.0.1的文件,在BAT文件输出中,我想要字符串"101"或"1.0.1"。
我有一个带版本资源的文件,其中File version/Product version字段已填写。我需要通过BAT文件检索Product version。例如,我有一个ProductVersion为1.0.1的文件,在BAT文件输出中,我想要字符串"101"或"1.0.1"。
sigcheck
工具,它是 Sysinternals Suite 的一部分。因为 filever
已经相当古老了。$ sigcheck.exe -q -n app.exe
5.0.0.1241
-q
(安静)和-n
,它将仅显示文件版本号。如何使用Filever.exe工具在Windows中获取有关文件的特定信息
从我对filever
输出的了解来看,它总是以列的形式呈现,并且您想要第五列(版本)。因此,一个简单的for
循环就足够了:
for /f "tokens=5 delims= " %%v in ('filever myFile.dll /b') do echo %%v
filever
,所以无法直接测试,但该代码适用于KB文章中给出的示例输出。 - Joey对于像我这样的菜鸟,上面的语句有一个更正:获取产品版本值的方法应该是:
for /f "tokens=5 delims= " %%v in ('filever myFile.dll /b /v') do echo %%v
/v
参数丢失,我无法获取正确的值。
要从资源RC文件中读取版本,您可以使用以下方法:
for /F "tokens=3" %%a in ( 'findstr ProductVersion YourProgram.rc' ) do set VERSION=%%~a