
94233
05.10.2010, aktualisiert um 12:06:05 Uhr
Per batch überprüfen ob regestry eintrag vorhanden oder nicht!
hi leute ich habe folgendes Problem
ich hab hinbekommen mit einen einfach reg add befehl einen eintrag in einen bestimmten schlüssel zu erstellen
nun soll ich aber mit einem neuen batch überprüfen ob der eintrag vorhanden ist oder nicht.
So sieht meine bat datei aus:
des weiteren bekomm ich eine fehler meldung wen ich ausführe u zwar:
danach geht er in die schleife u zwar in den else zweig was ja richtig ist da er ja nichts gefunden hat
doch ich frag mich wiso er den schlüssel nicht annimmt und ich weis nicht wiso er sagt das ich den Umgebungsvariable "nicht" nicht definiert habe.
Ich benötige ja die Variable nicht oder?
Ich hoffe jemand kann mir auf die sprünge helfen bin noch recht neu in der Batch programmierung.
^^trotzdem schon mal vielen dank im voraus
ich hab hinbekommen mit einen einfach reg add befehl einen eintrag in einen bestimmten schlüssel zu erstellen
nun soll ich aber mit einem neuen batch überprüfen ob der eintrag vorhanden ist oder nicht.
So sieht meine bat datei aus:
@echo OFF
echo Es wird nun ueberprueft ob IRPStackSize schon erstellt ist...
echo Sollte Es nocht nicht erstellt sein koennen sie dies hier noch machen.
pause
set IRPStackSizeTest=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD
for /F "delims=\ tokens=1" %%f in ('reg query "%IRPStackSizeTest%"') do (
set IRPSTackSizenr=%%f
CALL :Anzeigen
)
:Anzeigen
reg query "%IRPStackSizeTest%\%IRPSTackSizenr%" /v Vorhanden | FIND "0b1">NUL
if "%errorlevel%"=="0" (
set vorhanden
echo IRPStackSize ist bereits vorhanden!!!
) ELSE (
set nicht vorhanden
echo IRPStackSize ist noch nicht vorhanden
echo Die Erstellung von IRPStackSize wird gestartet.....
pause
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD
echo IRPStackSize wurde erfolgreich erstellt mit dem Wert 50!
echo Programm wird nun beendet
pause
)
exit
des weiteren bekomm ich eine fehler meldung wen ich ausführe u zwar:
Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden werden.
Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden werden.
Die Umgebungsvariable "nicht" ist nicht definiert.
doch ich frag mich wiso er den schlüssel nicht annimmt und ich weis nicht wiso er sagt das ich den Umgebungsvariable "nicht" nicht definiert habe.
Ich benötige ja die Variable nicht oder?
Ich hoffe jemand kann mir auf die sprünge helfen bin noch recht neu in der Batch programmierung.
^^trotzdem schon mal vielen dank im voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 152378
Url: https://administrator.de/forum/per-batch-ueberpruefen-ob-regestry-eintrag-vorhanden-oder-nicht-152378.html
Ausgedruckt am: 04.05.2025 um 03:05 Uhr
8 Kommentare
Neuester Kommentar
Moin,
Ansonsten ist der Aufbau der Batch für mich noch nicht ganz verständlich...
Update 12:28 Uhr
Ich habe mal was gebastelt:
Diese kl. Batchdatei prüft ob der Registrykey "IRPStackSize" vorhanden ist oder nicht. Wenn er vorhanden ist, wird nichts gemacht anderen Falls wird der Key erstellt.
Erfüllt das deine Aufgabe oder habe ich was falsch gelesen?!
Grüße,
Dani
set IRPStackSizeTest=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD
Das ist schon mal Mist! Wenn du die Hilfe von "reg query /?" anschaust, wirst du feststellen, dass HKEY_LOCAL_MACHINE mit HKLM angekürtzt wird. Somit sollte Fehler 1,2 schon mal verschwunden sein.Ansonsten ist der Aufbau der Batch für mich noch nicht ganz verständlich...
Update 12:28 Uhr
Ich habe mal was gebastelt:
@echo off
set value=
for /f "tokens=3 delims= " %%i in ('reg query HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /t REG_DWORD ^| findstr /i "REG_DWORD" ') do set value=%%i
if "%value%" EQU "" (
echo IRPStackSize ist noch nicht vorhanden
echo Die Erstellung von IRPStackSize wird gestartet...
pause
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD
echo IRPStackSize wurde erfolgreich erstellt mit dem Wert 50!
echo Programm wird nun beendet.
pause
) else (
echo IRPStackSize ist bereits vorhanden!
echo Wert: %value%
)
Erfüllt das deine Aufgabe oder habe ich was falsch gelesen?!
Grüße,
Dani
Hallo Dani!
Sorry für die Verspätung (war irgendwie zwischendurch auf der Strecke geblieben) ...
Die folgende Version gewinnt zwar sicher keinen Schönheitspreis, sollte aber funktionieren:
Grüße
bastla
Sorry für die Verspätung (war irgendwie zwischendurch auf der Strecke geblieben) ...
Die folgende Version gewinnt zwar sicher keinen Schönheitspreis, sollte aber funktionieren:
@echo off & setlocal
set "value="
for /f "tokens=3" %%i in ('reg query HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize 2^>nul ^| findstr /i "REG_DWORD" ') do set "value=%%i"
if "%value%" EQU "" (
echo IRPStackSize ist noch nicht vorhanden
echo Die Erstellung von IRPStackSize wird gestartet...
pause
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD
echo IRPStackSize wurde erfolgreich erstellt mit dem Wert 50!
echo Programm wird nun beendet.
pause
) else (
echo IRPStackSize ist bereits vorhanden!
echo Wert: %value%
)
bastla