Registry Werte Ordner lesen bringt Syntaxfehler
Hi,
ich stell mich echt wieder irgendwie zu grün an.
Ist der Gedankengang falsch so nach einem Eintrag zu suchen? Im Grunde ist es ja ein "Ordner" und kein Key selber.
Nicht über die Sets über regkey_x86 wundern die sind so vorgegeben.
Gruß
ich stell mich echt wieder irgendwie zu grün an.
SET PackageName=Oracle_Java.Runtime.Environment_Version
SET SourceDir=%~dp0
: Logdatei
SET LogDir=%Public%\Logs
SET LogPraefix=msiUninst
SET LogFile=%LogDir%\%LogPraefix%_%PackageName%
Set "regkey_x86=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL"
for /f %i in ('reg query "%regkey_x86%" /s ^|find "{26A24AE4-039D-4CA4-87B4-2F83216030FF}"') do
msiexec /x {26A24AE4-039D-4CA4-87B4-2F83216030FF} REBOOT=ReallySuppress /L*v "%LogFile%_JRE1.6U29.log"
Ist der Gedankengang falsch so nach einem Eintrag zu suchen? Im Grunde ist es ja ein "Ordner" und kein Key selber.
Nicht über die Sets über regkey_x86 wundern die sind so vorgegeben.
Gruß
Please also mark the comments that contributed to the solution of the article
Content-Key: 183661
Url: https://administrator.de/contentid/183661
Printed on: April 26, 2024 at 13:04 o'clock
5 Comments
Latest comment
Hi,
errorlevel 0 ist immer wahr, deshalb wird der Befehl auch ausgeführt, wenn der tatsächliche Errorlevel höher ist. Wenn du richtig prüfen willst, verwende
oder setze den Befehl mit && ohne die if-Abfrage direkt hinter den Kram in Zeile 1
Wenn msiexec der letzte Befehl in der Batch ist, der ausgeführt werden soll, kannst du auf das "start /wait" gut verzichten. Die Batch-Datei wird dann sowieso erst beendet, wenn der Install-Prozess abgelaufen ist.
Nur am Rande: In der Registry gibt es nur Schlüssel, Werte und Daten, keine Ordner.
Gruß
errorlevel 0 ist immer wahr, deshalb wird der Befehl auch ausgeführt, wenn der tatsächliche Errorlevel höher ist. Wenn du richtig prüfen willst, verwende
if [%errorlevel%] equ ....
Wenn msiexec der letzte Befehl in der Batch ist, der ausgeführt werden soll, kannst du auf das "start /wait" gut verzichten. Die Batch-Datei wird dann sowieso erst beendet, wenn der Install-Prozess abgelaufen ist.
Nur am Rande: In der Registry gibt es nur Schlüssel, Werte und Daten, keine Ordner.
Gruß
Aloha,
sicher, wenn du statt
greetz André
P.S.:
sicher, wenn du statt
find
dann findstr
nimmst, kannst du gerne per ^|findstr "{WERT1} {WERT2} {WERT3}"
in deiner urspr. Schleife arbeiten, oder auch andersherum perfor %%i in ({WERT1} {WERT2} {WERT3}) do Reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /v %%i && start /wait MsiExec.exe /qn /x %%i
greetz André
P.S.:
if errorlevel=0
... a) wird das nix und b) gefällt dir &&
nicht?