Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst Batch die eine vorhande .reg nach einem eintrag durchsucht

Mitglied: WhiteLion

WhiteLion (Level 1) - Jetzt verbinden

20.04.2008, aktualisiert 18:05 Uhr, 3797 Aufrufe, 11 Kommentare

hallo,

leider konnte ich trotz intensiver suche keine lösung für mein problem finden. was nciht zuletzt daran liegt, dass der for befehl für mich (trotz bemühungen) recht unverständlich ist. mein problem:
ich habe meine batch-routine so weit, das im %temp%-verzeichnis eine datei namens "ausgelesen.reg" geschrieben wird, in dieser befinden sich registrierungsschlüssel. ich möchte gerne, dass wenn der schlüssel mit dem namen "Heureka" vorhanden ist, meine batchdatei beendet wird. ist er allerdings nicht vorhanden, sollte eine weiter batchdatei namens "add.bat" die ebenfalls im %temp% liegt ausgeführt wird.

leider konnte ich nix passendes finden und bedanke mich jetzt schonmal für die bemühungen!

LG jens
Mitglied: 54487
20.04.2008 um 13:18 Uhr
findstr ist dein Freund. Hilfe in der Konsole mit findstr /?
Bitte warten ..
Mitglied: WhiteLion
20.04.2008 um 13:43 Uhr
findstr ist dein Freund. Hilfe in der
Konsole mit findstr /?


also ich habs getest und bin noch nciht wirklich weiter gekommen. obwohl die datei ausgelesen.reg im temp vorhanden ist, und er laut promt dort auch sucht, findet er sie nicht:

c:\test>findstr "Heureka" %temp%/ausgelesen.reg
FINDSTR: C:\DOKUME~1\ADMINI~1\LOKALE~1\ausgelesen.reg kann nicht geöffnet werden. (ist aber da!!!)

weiterhin stelle ich mir die frage wie ich eine ifschleife gestallte, wenn der wert da ist, dann exit, falls nicht, andere batch ausführen.
Bitte warten ..
Mitglied: 54487
20.04.2008 um 13:52 Uhr
Wenn du den Slash hinter %temp% in einen Backslash änderst und den Pfad in Gänsefüßchen setzt, funktioniert dein Beispiel vielleicht.

01.
@echo off & setlocal 
02.
findstr /i "heureka" "%temp%\ausgelesen.reg"  && goto :eof 
03.
echo heureka wurde nicht gefunden, hier geht es weiter 
04.
.. 
05.
..
Wenn "heureka" gefunden wurde, wird die Batchdatei beendet (:eof ist eine vordefinierte Sprungmarke für das Dateiende)
Bitte warten ..
Mitglied: WhiteLion
20.04.2008 um 14:23 Uhr
aha, ok ... jetzt bin ich fast zufrieden ... also wenn "eof" automatisch zum dateiende springen soll ohne dass weitere befehle ausgeführt werden, klappts bei mir nicht....
ich habe jetzt folgendes:

@echo off & setlocal
regedit /E %temp%/ausgelesen.reg "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
;reg export HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run %temp%/ausgelesen.reg
findstr /i "Heureka" "%temp%\ausgelesen.reg" && goto :eof
add.bat
del %temp%\add.bat
del %temp%\ausgelesen.reg
exit

add.bat wird in jedem fall ausgeführt, auch wenn heureka vorhanen ist.... das soll ja nicht so sein. am besten wäre auch wenn der teil anch add.bat (also das löschen der dateien) immer ausgeführt wird, auch wenns vorhanden ist
Bitte warten ..
Mitglied: 54487
20.04.2008 um 14:28 Uhr
Ich hatte was zum Slash bzw. Backslash geschrieben. In einer Pfadangabe hat der Slash "/" nichts zu suchen. Du hast die Datei wieder mit dem "/" erzeugen lassen.
Bitte warten ..
Mitglied: WhiteLion
20.04.2008 um 14:33 Uhr
@echo off & setlocal
regedit /E %temp%\ausgelesen.reg "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
;reg export HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run %temp%\ausgelesen.reg
findstr /i "Heureka" "%temp%\ausgelesen.reg" && goto :eof
add.bat
del %temp%\add.bat
del %temp%\ausgelesen.reg
exit

so besser? oder gar keinen slash ???
Bitte warten ..
Mitglied: 54487
20.04.2008 um 14:37 Uhr
Wenn du die Zeile mit dem ";" am Anfang noch rausschmeißt und die Pfade in "" setzt, wird es langsam.

01.
findstr /i "Heureka" "%temp%\ausgelesen.reg" && goto :ende  || goto :weiter 
02.
 
03.
:weiter 
04.
rem hierher bei Nichtvorhandensein 
05.
.. 
06.
.. 
07.
:goto :eof 
08.
 
09.
:ende 
10.
rem hierher wenn gefunden
Bitte warten ..
Mitglied: WhiteLion
20.04.2008 um 15:02 Uhr
@echo off & setlocal
regedit /E %temp%\autoloc.reg "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"
regedit /E %temp%\autouser.reg "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
findstr /i "heureka" "%temp%\autoloc.reg" && goto :ende || goto :weiter
:weiter
findstr /i "Heureka" "%temp%\autouser.reg" && goto :ende || goto :weiter2
:weiter2
add.bat
del %temp%\add.bat
del %temp%\autoloc.reg
del %temp%\autouser.reg
:ende
del %temp%\add.bat
del %temp%\autoloc.reg
del %temp%\autouser.reg
exit


ich habs noch etwas erweitert.... aber leider werden die dateien autoloc.reg und autouser.reg nicht gelöscht

außerdem wird die add.bat in jedem fall ausgeführt, auch wenn der eintrag schon vorhanen!

ist es sonst schon richtig ?

EDIT: wenn ich per commandline "del %temp%\autouser.reg" eingebe wirds gelöscht! warum also in meiner batch nicht ?
Bitte warten ..
Mitglied: bastla
20.04.2008 um 16:20 Uhr
Hallo WhiteLion!

Vorweg: Auch wenn's diesmal nicht an den fehlenden Anführungszeichen liegt, würde ich empfehlen, diese im Zweifelsfall trotzdem zu verwenden.

Der Aufruf der "add.bat" ohne vorangestelltes "call" übergibt die Steuerung an "add.bat" - der Rest des aktuellen Batches wird daher gar nicht ausgeführt.

Eine auf das Wesentliche reduzierte Fassung könnte so aussehen:
01.
@echo off & setlocal 
02.
regedit /E "%temp%\autoloc.reg" "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" 
03.
regedit /E "%temp%\autouser.reg" "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" 
04.
findstr /i "heureka" "%temp%\autoloc.reg" && goto :ende 
05.
findstr /i "Heureka" "%temp%\autouser.reg" && goto :ende 
06.
call add.bat 
07.
:ende 
08.
del "%temp%\add.bat" 
09.
del "%temp%\autoloc.reg" 
10.
del "%temp%\autouser.reg"
Grüße
bastla

P.S.: Falls Du Dich fragst, warum der Batch-Code bei nachdenker, im Gegensatz zu Deinem, so schön formatiert ist: https://www.administrator.de/index.php?faq=20#toc26
Bitte warten ..
Mitglied: paulepank
20.04.2008 um 17:52 Uhr
Hallo in die Runde,

trotz aller freundlichen Hinweise wird das Wort Heureka nicht gefunden werden.
Grund: regedit /e exportiert in das Unicode-Format.
Es muß deshalb der Schalter /a verwendet werden.

Besser wäre hier wahrscheinlich auch die Verwendung von reg.exe

zb.

01.
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run /s | findstr /i "heureka"
und dann den Errorlevel auswerten. Dann kann man sich zumindest die reg-Datei sparen.

cu paulepank
Bitte warten ..
Mitglied: bastla
20.04.2008 um 18:05 Uhr
Hallo paulepank!

Danke für den Hinweis - die Verwendung von "regedit" war mir gar nicht aufgefallen ...

Ein genereller Workaround für die Unicode-Problematik wäre hier (da ohnehin in eine Datei exportiert wird) relativ einfach einsetzbar - eine neuerliche Ausgabe der Datei erfolgt nämlich im ASCII-Format, daher ginge es auch so:
01.
type "%temp%\autoloc.reg"|findstr /i "heureka" && goto :ende
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Windows Userverwaltung

Eintrag in Gruppenrichtlinie nicht vorhanden

gelöst Frage von leadonWindows Userverwaltung10 Kommentare

Hallo, ich habe ein eigenartiges Verhalten in meiner Gruppenrichtlinienverwaltung. In der Vorschau der Einstellungen für die Gruppenrichtlinie die ich ...

PHP

Problem wenn kein mehrere Eintrag Einträge für Monat vorhanden

gelöst Frage von TheAlexPHP2 Kommentare

Nachdem ich jetzt dank der Mithilfe eines Users den Eintrag passend zum Tag anzeigen lasssen kann habe ich ein ...

Batch & Shell

Reg query wert als platzhalter in batch

Frage von 136298Batch & Shell4 Kommentare

guten morgen, da ich gerade eine phase nach input habe wäre ich dankbar wenn ihr mir hierbei helfen könnt ...

Windows Server

Angeblich nicht vorhandener DNS Eintrag kann nicht angelegt werden

Frage von AlternativendeWindows Server11 Kommentare

Hallo zusammen, ich installiere gerade einen neuen 2008er Server in einer vorhandenen Domäne (alter DC mit 03) und habe ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 2 TagenAusbildung33 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 4 TagenSpeicherkarten4 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 4 TagenSicherheit1 Kommentar

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 4 TagenHardware3 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Passwortwechsel Zeitpunkt festlegen
Frage von Looser27Windows Userverwaltung25 Kommentare

Guten Morgen liebe Kolleginnen und Kollegen, da es eine Userin in meinem Urlaub geschafft hat, sich vom AD vollständig ...

Vmware
Offene LDAP-Server in AS
gelöst Frage von obi-wan-kenobiVmware19 Kommentare

Hallo alle Miteinander, ich habe ein Problem, unsere VM-Ware Appliance (Version. 6.5.0.10000) ist scheinbar angreifbar. Wir haben eben die ...

Windows 10
Windows 10 Spracherkennung - Eure Meinungen?
Frage von honeybeeWindows 1014 Kommentare

Hallo, wollte heute mal aus Neugier die Spracherkennung unter Windows 10 (Version 1803) ausprobieren und war mehr wie enttäuscht. ...

Windows Server
Zertifikat RemoteDesktop hinterlegen
gelöst Frage von Green14Windows Server12 Kommentare

Hallo zusammen. ich habe mehrere Server (WinSrv 2016). Die Server sind in keiner Domäne und keine Terminalserver. Ich verbinde ...