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, 3790 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
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 8 StundenBackup

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 2 TagenHumor (lol)5 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 2 TagenExchange Server8 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 3 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke43 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Netzwerke
SSH - Wieso werde ich nach VPN Verbindung rausgeschmissen?
Frage von VernoxVernaxNetzwerke10 Kommentare

Hallo, ich habe es endlich geschafft mein Handy mit einer VPN Verbindung an meinen Router anzuschließen. Nach der Login ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft10 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...

Windows Server
Freigaben per Default nur für Domänen-Benutzer
Frage von tierwoWindows Server8 Kommentare

Hallo gibt es eine Möglichkeit, einen Server 2016 so zu konfigurieren (z.B. per GPO), dass Freigaben die erstellt werden ...