patrick93

Batch zum Vergleichen der Firefox-Version

Guten Tag,

ich habe folgenden Batch-Script verfasst:
@echo off &setlocal
set "Datei=C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
(
echo Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
echo Set objShell = CreateObject^("Shell.Application"^)
echo Set objFolder = objShell.NameSpace^(objFSO.GetParentFolderName^(WScript.Arguments^(0^)^)^)
echo WScript.Echo objFolder.ParseName^(objFSO.GetFileName^(WScript.Arguments^(0^)^)^).ExtendedProperty^("productversion"^)
)>"%temp%\getPV.vbs"

for /f %%i in ('cscript //nologo "%temp%\getPV.vbs" "%Datei%"') do set "ProdVersion=%%i"
del "%temp%\getPV.vbs"
for /f %%k in ("C:\test.txt") DO set "ActVersion=%%k"

if %ProdVersion% == %ActVersion% GOTO ONE
if %ProdVersion% [NOT] == %ActVersion% GOTO TWO

:ONE
echo Version is OK
pause

:TWO
echo Version is out of date
pause

Kurz zur Erklärung:
Zuerst soll die aktuell installierte Firefox-Version ausgelesen werden. Ist dies erfolgt, soll diese Version mit dem Wert, der in der ersten Zeile der Text-Datei test.txt eingetragen ist (z.B. 50.1.0), verglichen werden. Dazu soll das Script den Text in test.txt auslesen, als Variable %ActVersion% setzen und eben mit %ProdVersion% vergleichen. Ist es derselbe Wert, soll "Version is OK" ausgegeben werden, andernfalls "Version is out of date". Das Auslesen der Firefox-Version funktioniert, das habe ich seperat getestet. Auch wenn ich anstatt %ActVersion% den Wert 50.1.0 eingebe, funktioniert das Script. Nur scheinbar passt etwas nicht mit dem Auslesen aus der Test-Datei, nur weiß ich nicht was...

Letztendlich soll am Ende folgender Ablauf stattfinden:
Ich lese aus einer Softwareverteilung die aktuell freigegebene Firefox-Version aus und gebe sie als Text-Datei aus. Diese wird mit der aktuell installierten Version verglichen. Ist eine ältere Version installiert, soll eine Firewallregel aktiviert werden, die den Datenverkehr über Firefox blockt. Das oben beschriebene sollte mein Grundgerüst dafür sein, woran es aber im Moment scheitert...
Hat eventuell jemand eine Idee, was falsch ist, oder einen besseren Vorschlag, um mein Vorhaben umzusetzen?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 331572

Url: https://administrator.de/forum/batch-zum-vergleichen-der-firefox-version-331572.html

Ausgedruckt am: 10.05.2025 um 15:05 Uhr

MrCount
Lösung MrCount 08.03.2017 um 14:03:14 Uhr
Goto Top
Servus,

dieses Script funktioniert:
@echo off &setlocal
set "Datei=C:\Program Files (x86)\Mozilla Firefox\firefox.exe"  
(
echo Set objFSO = CreateObject^("Scripting.FileSystemObject"^)  
echo Set objShell = CreateObject^("Shell.Application"^)  
echo Set objFolder = objShell.NameSpace^(objFSO.GetParentFolderName^(WScript.Arguments^(0^)^)^)
echo WScript.Echo objFolder.ParseName^(objFSO.GetFileName^(WScript.Arguments^(0^)^)^).ExtendedProperty^("productversion"^)  
)>"c:\tmp\getPV.vbs"  

for /f %%i in ('cscript //nologo "c:\tmp\getPV.vbs" "%Datei%"') do set "ProdVersion=%%i"  
del "c:\tmp\getPV.vbs"  
for /f %%k in (C:\tmp\test.txt) DO set "ActVersion=%%k"  

if %ProdVersion% == %ActVersion% GOTO ONE
if %ProdVersion% NEQ %ActVersion% GOTO TWO

:ONE
echo Version is OK
pause
exit

:TWO
echo Version is out of date
pause
exit

Pfade müsstest du noch anpassen...
patrick93
patrick93 08.03.2017 um 14:28:22 Uhr
Goto Top
Vielen Dank!