Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Per batch überprüfen ob regestry eintrag vorhanden oder nicht!

Frage Entwicklung Batch & Shell

Mitglied: 94233

94233 (Level 1)

05.10.2010, aktualisiert 12:06 Uhr, 9006 Aufrufe, 8 Kommentare

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:
01.
@echo OFF 
02.
echo Es wird nun ueberprueft ob IRPStackSize schon erstellt ist... 
03.
echo Sollte Es nocht nicht erstellt sein koennen sie dies hier noch machen. 
04.
pause 
05.
set IRPStackSizeTest=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD 
06.
for /F "delims=\ tokens=1" %%f in ('reg query "%IRPStackSizeTest%"') do ( 
07.
            set IRPSTackSizenr=%%f  
08.
           CALL :Anzeigen 
09.
10.
 
11.
  
12.
:Anzeigen 
13.
    reg query "%IRPStackSizeTest%\%IRPSTackSizenr%" /v Vorhanden | FIND "0b1">NUL 
14.
    if "%errorlevel%"=="0" ( 
15.
            set vorhanden 
16.
            echo IRPStackSize ist bereits vorhanden!!! 
17.
        ) ELSE ( 
18.
            set nicht vorhanden 
19.
	    echo IRPStackSize ist noch nicht vorhanden 
20.
            echo Die Erstellung von IRPStackSize wird gestartet..... 
21.
	    pause 
22.
	    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD 
23.
	    echo IRPStackSize wurde erfolgreich erstellt mit dem Wert 50! 
24.
	    echo Programm wird nun beendet 
25.
	    pause  
26.
27.
  
28.
 
29.
exit
des weiteren bekomm ich eine fehler meldung wen ich ausführe u zwar:
01.
Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden werden. 
02.
Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden werden. 
03.
 
04.
Die Umgebungsvariable "nicht" ist nicht definiert.
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
Mitglied: em-pie
05.10.2010 um 12:02 Uhr
Moin,

hast du einfach mal nen
01.
echo %IRPStackSize%
gemacht um zu sehen, was in deiner Variable überhaupt drin steht?
Bitte warten ..
Mitglied: Dani
05.10.2010 um 12:16 Uhr
Moin,
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:
01.
@echo off 
02.
 
03.
set value= 
04.
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 
05.
 
06.
if "%value%" EQU "" ( 
07.
	echo IRPStackSize ist noch nicht vorhanden 
08.
	echo Die Erstellung von IRPStackSize wird gestartet... 
09.
	pause 
10.
 
11.
	reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD 
12.
 
13.
	echo IRPStackSize wurde erfolgreich erstellt mit dem Wert 50! 
14.
	echo Programm wird nun beendet. 
15.
 
16.
	pause 
17.
 
18.
) else ( 
19.
	echo IRPStackSize ist bereits vorhanden! 
20.
	echo Wert: %value% 
21.
)
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
Bitte warten ..
Mitglied: 94233
05.10.2010 um 13:11 Uhr
hnnn danke das was du da gebastelst hast ist schon recht hilfreich
hab bloss die frage wen man das was du da geschrieben hast verwendet passiert nix
fehlt da noch irgend was?

also das Programm soll lediglich in den angegebenen pfad nach dem eintrag suchen u sagen ob er vorhanden ist oder nicht u wen nicht dann die erstellung einleiten
Bitte warten ..
Mitglied: Dani
05.10.2010 um 13:27 Uhr
Ich habe es unter Windows 7 x64 Professional getestet.... da scheint es zu funktionieren.
Hast du meine Zeilen in eine Batchdatei kopiert, gespeichert und ausgeführt oder direkt in die Kommandozeile kopiert und ausgeführt?!


Grüße,
Dani
Bitte warten ..
Mitglied: 94233
05.10.2010 um 13:32 Uhr
ich habs in einen extra bat datei kopiert abgespeichert u ausprobiert
o.o hnnn ka ob es am bs liegt verwende hier of den rechner win xp home
Bitte warten ..
Mitglied: Dani
05.10.2010 um 15:06 Uhr
Sorry, ich habe hier grad kein virtuelles WindowsXP zur Hand. Könnte jemand anders (z.B. Biber oder bastla) das Ganze bei sich testen.
Irrtiert mich grad schon ein bisschen....


Grüße,
Dani
Bitte warten ..
Mitglied: 94233
05.10.2010 um 15:22 Uhr
o.o ich hab nun ein anderes Problem seite dem ich dein batch programm ausprobiert hab spinnen meine ganzen bats o.o
so bald sie etwas tun sollen bleiben sie stecken und führen im hintergrund immer wieder die cmd.exe aus u das so lange bis ich das fenster schließe
beim schließen schreibt es dann C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^ je nach dem wie lange ich das fenster offen gelasen hab
auch wen ich ne neue bat schreibe passiert immer wieder das hab auch meinen rechner neu gestartet keine ahnung was mit dem los ist


-.- hab heraus gefunden woran es liegt u zwar war es die bat datei die mit deinen code gefüttert war
das hat sämtliche bat datein zum still stand gebracht
Bitte warten ..
Mitglied: bastla
07.10.2010 um 00:21 Uhr
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:
01.
@echo off & setlocal 
02.
 
03.
set "value=" 
04.
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" 
05.
 
06.
if "%value%" EQU "" ( 
07.
    echo IRPStackSize ist noch nicht vorhanden 
08.
    echo Die Erstellung von IRPStackSize wird gestartet... 
09.
    pause 
10.
 
11.
    reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v IRPStackSize /d 50 /t REG_DWORD 
12.
 
13.
    echo IRPStackSize wurde erfolgreich erstellt mit dem Wert 50! 
14.
    echo Programm wird nun beendet. 
15.
 
16.
    pause 
17.
 
18.
) else ( 
19.
    echo IRPStackSize ist bereits vorhanden! 
20.
    echo Wert: %value% 
21.
)
Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(1)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...