Mit einem Problem, bei dem ich nicht scheinen kann, dass das folgende Skript funktioniert. Grundsätzlich als Zusammenfassung brauche ich eine Version einer Anwendung, um sicherzustellen, ist größer als 2.0.0.8Kann die Dezimalzahl nicht über Batch vergleichen
So, hier ist mein Code:
setlocal enabledelayedexpansion
set n2=2.0.0.8
FOR /F "tokens=2* delims=0 " %%A IN ('REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
\FB58E75BC1D58DF60340894DB00D3FA9BBD513B6" /v displayversion') DO SET n1=%%B
IF %n1% GEQ %n2% (goto success) else (goto error)
:success
start notepad.exe
Goto:eof
:error
start winword.exe
Goto:eof
:eof
exit
Der Ausgang funktioniert gut und n1 gibt eine Version größer als 2.0.0.8 (es Ausgabe 2.0.0.12) mit Notepad und Winword startet als Test.
Egal, was es immer Fehler und öffnet Winword.exe
Der Wert in der Prüfung ist 2.0.0.12 so, warum dieses erroring noch aus?
Hoffnung macht das Sinn
Dank
Mikojan
'2.0.0.8' ist nicht dezimal ... – npocmaka
Related: [Wie Zeilen einer Textdatei mit Versionsnummern im Format major.m zu sortieren inor.build.revision numerical?] (http://stackoverflow.com/a/34418090) – aschipfl