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-Key: 168319

Url: https://administrator.de/contentid/168319

Printed on: April 18, 2024 at 10:04 o'clock

Member: Friemler
Friemler Jun 20, 2011 at 11:56:45 (UTC)
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
Member: bastla
bastla Jun 20, 2011 at 11:58:13 (UTC)
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
Member: garciam
garciam Jun 20, 2011 at 12:28:44 (UTC)
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
Member: Friemler
Friemler Jun 20, 2011 at 12:56:15 (UTC)
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
Member: garciam
garciam Jun 20, 2011 at 13:52:07 (UTC)
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!