garciam
Goto Top

Schlüssel abfragen

Hallo

Kann mir vielleicht jemand helfen, ich komme nicht weiter. Eigentlich nichts grosses...

Ich möchte den Schlüssel HKEY_CLASSES_ROOT\.TIFF abfragen und wenn dieser noch nicht vorhanden ist, ein REG File ausführen. Wie kann ich den Schlüssel abfragen? Eine Zeichenfolge funktioniert aber der Schlüsse (Ordner) geht nicht.
@echo off

reg query "HKEY_CLASSES_ROOT\.TIFF" > nul  

if errorlevel 0 goto exit

regedit /s \\server\install\TIFF-Classes.reg

:exit
Danke für eure Hilfe!

Gruss

Content-ID: 168319

Url: https://administrator.de/forum/schluessel-abfragen-168319.html

Ausgedruckt am: 09.01.2025 um 01:01 Uhr

Friemler
Friemler 20.06.2011 um 13:56:45 Uhr
Goto Top
Hallo garciam,

mit if errorlevel 0 fragst Du ab, ob ERRORLEVEL größer oder gleich 0 ist. Wenn Du auf den Wert 0 prüfen willst, musst Du if %errorlevel% equ 0 verwenden.

Gruß
Friemler
bastla
bastla 20.06.2011 um 13:58:13 Uhr
Goto Top
... wobei das Ganze aber im Zweifelsfall ohnehin mit "&&" schmerzfreier zu erledigen ist ...

Sollte übrigens die Sprungmarke ":exit" auch schon für "Ende des Batches" stehen, würde ein "goto :eof" (ohne die Sprungmarke ":eof" setzen zu müssen) schon genügen.
Alternativ könntest Du es so versuchen:
reg query "HKEY_CLASSES_ROOT\.TIFF\" > nul || regedit /s \\server\install\TIFF-Classes.reg

Grüße
bastla
garciam
garciam 20.06.2011 um 14:28:44 Uhr
Goto Top
Danke für eure Vorschläge. Ich habe beides versucht, bin jedoch nicht zum Ziel gekommen.

Sowohl mit
reg query "HKEY_CLASSES_ROOT\.TIFF\" > nul || regedit /s \\server\install\TIFF-Classes.reg  
wie auch mit
if %errorlevel% equ 0
erhalte ich die Meldung, "Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden werden." und es wird kein Eintrag gemacht.

Ich denke, es hat nicht in erster Linie mit dem errorlevel oder der Schreibweise zu tun, sondern dass ich einen Schlüssel und keine Zeichenfolge abfragen will. Kann mich natürlich auch täuschen, kenne mich nicht so gut aus.

Gruss
Friemler
Friemler 20.06.2011 um 14:56:15 Uhr
Goto Top
Hallo garcim,

wenn Du die Fehlermeldung nicht sehen willst, musst Du zusätzlich zu >NUL dieses 2>NUL oder 2>&1 verwenden. Das leitet den Fehlerkanal 2 ins Nirvana um.

Du kannst den Aufruf von REG QUERY ja auch mal von der Konsole direkt starten und danach ein echo %errorlevel% ausführen. Bei Erfolg sollte die Ausgabe 0 sein, bei einem nicht existierenden Schlüssel 1.

Wenn dein Eintrag nicht angelegt wird hat das andere Gründe. Teste mal die Installation der REG-Datei direkt, ohne Script.

Gruß
Friemler
garciam
garciam 20.06.2011 um 15:52:07 Uhr
Goto Top
Ich habe es nun so
@echo off

reg query "HKEY_CLASSES_ROOT\.TIFF" > nul  

if %ERRORLEVEL% equ 0 goto :eof ( 

regedit /s \\server\install\TIFF-Classes.reg

)
und das scheint zu funktionieren.

Danke für eure Hilfe!