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

Frage Entwicklung Batch & Shell

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, 3765 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: http://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 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 ...

Batch & Shell
Doppelte Einträge mit Batch entfernen
gelöst Frage von Kugelschreiber15Batch & Shell8 Kommentare

Hallo Leute, bin grad dabei ein kleines Tool zu basteln und habe nun eine Frage! Ich suche mit Hilfe ...

Windows 7
Explorer Suche: Netzlaufwerke können nicht mehr durchsucht werden
Frage von manibamWindows 73 Kommentare

Hallo zusammen Die Suche im Explorer funktioniert nur noch auf den lokalen Laufwerken, auf den Netzlaufwerken passiert nichts. Suchvorgang ...

Batch & Shell
Batch-Datei soll überprüfen ob ein Verzeichnis vorhanden ist
gelöst Frage von synapsenstauBatch & Shell7 Kommentare

Moin, wie bringe ich bitte einer Batch-Datei bei, das sie "schaut" ob ein Verzeichnis vorhanden ist und wenn nicht ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...