Ich nutze folgendes Batch-Script um die Dateiversion einer EXE-Datei auszulesen:
CODE
@echo off & setlocal
set "Datei=c:\temp\firefox.exe"
set "GetV=%Temp%\GetV.vbs"
echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%"
echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%"
echo For Each objFile in colFiles: WScript.Echo objFile.version: Next>>"%GetV%"
set Version=
for /f %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i"
if defined Version echo %Datei% - Version %Version%
del "%GetV%"
pause
set "Datei=c:\temp\firefox.exe"
set "GetV=%Temp%\GetV.vbs"
echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%"
echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%"
echo For Each objFile in colFiles: WScript.Echo objFile.version: Next>>"%GetV%"
set Version=
for /f %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i"
if defined Version echo %Datei% - Version %Version%
del "%GetV%"
pause
Das Script funktioniert soweit auch ohne Probleme und gibt mir die Dateiversion "6.0.0.4144" aus. Soweit so gut.
Nun gibt es aber in den Dateieigenschaften dieser EXE-Datei noch eine "Produktversion":
Wie muss ich das Script anpassen, damit nun diese "Produktversion" ausgelesen wird? Oder gibt es dafür noch eine andere Lösung?
Für Eure Hilfe bedanke ich mich bereits im voraus!
Gruß
tegwert