[Bat] sprawdzanie klucza w rejestrze


(M8 R Ias0ym) #1

Witam!

Chciałem napisać w bacie skrypt który by sprawdzał wpis w rejestrze lecz mam problem z napisaniem odpowiedniej składni:

reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v zzz /t REG_SZ /f "zzz.exe" 

if not errorlevel 1 goto jest

echo nie ma

:jest

echo jest

(501) #2

Też kiedyś próbowałem zrobić coś podobnego w bacie, ale tu chyba dużo nie zdziałasz.

"REG QUERY" służy tylko do porównywania ze sobą wartości w rejestrze.

A poza tym w pierwszej linijce pomyliłeś jeden argument: zamiast "/f" powinno być "/d", "/f" służy do wymuszania (czyt. dodaje/usuwa daną wartość bez pytania) i daje się je na końcu.

Możesz zrobić tak, że twój skrypt doda taką samą wartość w innym miejscu, a potem porówna ją z tą właściwą i usunie tą, którą dodał.

Aha, errorlevel powinien znajdować się między "%", a na koniec daj polecenie "pause".

A przed etykietą ":jest" powinno być "pause", a potem "exit".


(M8 R Ias0ym) #3

Do porównywania służy REG COMPARE, a ja to chciałem zrobic przez REG QUERY który służy do wyświetlania zawartosci.


(501) #4

A... rzeczywiście, sorry za pomyłkę.

Spróbuj tego:

reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "zzz"

if not errorlevel 1 goto jest

echo nie ma

pause

exit

:jest

echo jest

pause

Można to jeszcze "ulepszyć", by sprawdzało czy ta wartość jest taka jak ma być, ale nie chce mi się męczyć :wink: .


(M8 R Ias0ym) #5

Ja to chciałbym wczytać razem z tą wartością

  • /f "zzz.exe" /d /c /e /t REG_SZ

Swój skrypt robiłem opierając się na stronie http://www.colorconsole.de/console/pl/131.htm