2011-03-18 272 views
1

我有一个文件版本资源,文件vesrion /产品版本字段被填充。我需要通过BAT文件检索产品版本。例如,我在bat文件的输出我wan't有串“101”用的ProductVersion 1.0.1文件或“1.0.1”通过cmd/bat从文件获取产品版本

回答

0

How to use the Filever.exe tool to obtain specific information about a file in Windows

从我收集filever的输出它总是在列中,你想要第五列(版本)。因此,一个简单for应该足够了:

for /f "tokens=5 delims= " %%v in ('filever myFile.dll /b') do echo %%v 
+0

我知道Filever,但它提供了太多的信息。你能帮我解析filever的输出吗? – zabulus 2011-03-18 09:17:19

+0

@zabalus:见编辑。我没有找到适用于Windows 7的'filever',因此我无法直接测试,但代码适用于知识库文章中给出的示例输出。 – Joey 2011-03-18 10:26:17

1

对于假人像我一样有在上述声明一个修正得到的产品版本的价值它会像:

for /f "tokens=5 delims= " %%v in ('filever myFile.dll /b /v') do echo %%v 

/v参数缺失我无法获得正确的价值。

0

来读取资源RC文件的版本,你可以使用:

for /F "tokens=3" %%a in ('findstr ProductVersion YourProgram.rc') do set VERSION=%%~a 
2

您可以使用sigcheck工具,它是Sysinternals Suite一部分,因为filever是安静的时候,例如

$ sigcheck.exe -q -n app.exe 
5.0.0.1241 

通过指定-q(安静)和-n,它会告诉你只有文件的版本号。

+1

很好,那就是我一直在寻找的东西。皮蒂你回答了5年后:)。仍然很好的回答 – zabulus 2016-05-12 11:35:55

+0

支持Filever.exe工具结束。对此答案+1。谢谢。 – Ale 2016-07-25 14:36:22