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
Kommentar vom Moderator Biber am 03.02.2010 um 20:10:06 Uhr
Verschoben von "Tools & Utilities" nach "Batch & Shell", auf "Erledigt" und "Geschlossen" gesetzt.
GELÖST

Eintrag aus div Datei auslesen und in eine weitere Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: 17467

17467 (Level 1)

20.01.2007, aktualisiert 03.02.2010, 5296 Aufrufe, 16 Kommentare

Hallo,

ich habe einen Ordner mit vielen Reg exporten und möchte jetzt 4 Werte auslesen und in eine weitere Datei schreiben.
Erste Zeile soll der Dateiname sein und dann die Werte usw ..

gruß ins WE
Mitglied: Dani
20.01.2007 um 12:19 Uhr
Hi,
wäre vielleicht gut, wenn du mal dein Vorhaben genauer erklärst.

4 Werte auslesen und in eine weitere Datei schreiben.
Sprich an Han des Schlüsselnamens? Ja - Und was machst du 2 oder 3 Schlüssel den gleichen Namen haben?! Nein - Wie möchtest du dann abfragen??


Gruß
Dani
Bitte warten ..
Mitglied: 17467
20.01.2007 um 12:44 Uhr
okay ...

ich habe einen Ordner mit Regestry Exporten.

z.b. c:\reglog dort gibt es 100 Dateien mit %computername%.reg

in dieser Datei steht ein Eintrag z.b

"enablesecuritysignature"=dword:00000000

diesen Wert und 3 andere möchte ich überprüfen ob am Ende eine 1 oder eine Null steht, wenn eine 1 steht, möchte ich den Namen der Datei in eine andere schreiben bzw ergänzen.

Somit kann ich überprfüfen, wo der falsche Eintrag an welchem Computer eingetragen ist.

Wir haben zwar AD, aber ich kann es nicht pflegen, habe aber Adminrechte ...

Das ganze kommt in die Start Batch vom DomainController.
Und bei jedem Start des PCs wird mir der Eintrag aktuell ausgelesen.

gruß
Bitte warten ..
Mitglied: Dani
20.01.2007 um 13:00 Uhr
Hi,
Ok...also so müsste es gehen!

01.
@ECHO off 
02.
::Kompletter Pfad zu dem REG-Ordner 
03.
SET dir_src=C:\te tes\assa      
04.
 
05.
::TXT-Datei, in der die Dateinamen gespeichert werden soll 
06.
SET file=asdf 
07.
 
08.
FOR /f %%a IN ('dir /b "%dir_src%"') DO ( 
09.
     FOR /f "skip=3 delims=: tokens=2,3* " %%b IN ('type "%dir_src%\%%a"') DO ( 
10.
          IF "%%b" == "00000001" ECHO %%a >> "C:\test\%file%.txt" 
11.
12.
)
Leider habe ich es nicht getestet. Sry...


Gruß
Dani
Bitte warten ..
Mitglied: bastla
20.01.2007 um 13:38 Uhr
Hallo ranjid!

Basierend auf Dani's Ansatz hätte ich folgendes anzubieten

01.
@echo off & setlocal 
02.
::Kompletter Pfad zu dem REG-Ordner 
03.
set dir_src=D:\Regtest 
04.
 
05.
::TXT-Datei, in der die Dateinamen gespeichert werden soll 
06.
set file="D:\RegTest\RegCheck.txt" 
07.
if exist %file% del %file% 
08.
 
09.
for %%a in ("%dir_src%\*.reg") do for /f "skip=3 delims=" %%b in ('type "%%a"') do call :ProcessLine "%%a" "%%b" 
10.
goto :eof 
11.
:ProcessLine 
12.
set key=enablesecuritysignature 
13.
set val=00000001 
14.
echo %2 | findstr /i /C:"%key%" && echo %2 | findstr /C:"%val%" && echo %~n1;%key% >> %file% 
15.
:: 
16.
set key=NoInternetOpenWith 
17.
set val=00000001 
18.
echo %2 | findstr /i /C:"%key%" && echo %2 | findstr /C:"%val%" && echo %~n1;%key% >> %file% 
19.
:: 
20.
... 
21.
... 
22.
...
Für jeden Key, den Du abfragen möchtest, müsstest Du einen Block wie oben in den beiden Beispielen nach ":ProcessLine" erstellen. Die Formatierung des Ergebnisses mit ";" als Trennzeichen erlaubt zB den Import in Excel - so wird's etwas übersichtlicher.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
20.01.2007 um 14:10 Uhr
...ich weiß' nicht...das wäre mir zuviel Heckmeck für diese Aufgabe.

Ich würde vom CMD-Prompt aus abfeuern...
01.
findstr /i "enablesecuritysignature" z:\meine100RegFiles\*.reg|findStr "00000000"  
02.
test.reg:"enablesecuritysignature"=dword:00000000
...dann hätte ich alle Rechner mit einem 0-Eintrag. Oder ich fasse in eine Ergebnisdatei nacheinander alle gesuchten Werte zusammen:
findstr /i "enablesecuritysignature" z:\meine100RegFiles\*.reg >>alleWerte.txt
findstr /i "SignatureIsUgly" z:\meine100RegFiles\*.reg >>alleWerte.txt
...
etc...

Natürlich könnte ich diese ganzen FindStr's noch in eine FOR -Anweisung packen, wenn es sich lohnt..

Gruß
Biber
Bitte warten ..
Mitglied: 17467
20.01.2007 um 19:02 Uhr
Hallo Biber,

ich habe also die 100 Files und möchte in jeder Datei gucken, ob in dem 00000000 String eine 1 gesetzt ist, wenn dann möchte ich den Namen der Datei ( des Computer, der steht ja als Dateinamen ) in eine weitere Datei, dort gucke ich rein und überprüfe damit, ob es ein System gibt welches einen verkehtren Eintrag hat.
Bitte warten ..
Mitglied: 17467
20.01.2007 um 19:28 Uhr
Hallo Bastla,

hab mal den del rausgenommen, schreibt aber nichts .... es passiert zwar was, kommt aber keine text Datei ...

großes EDIT ...

meine Test haben alle den passenden Wert gehabt, also muss ich den Wert mal ändern und es klappt !!!

super !!!

Jetzt kann das Anmeldescript den Reg-Eintrag exportieren und ich gucke einmal am Tag drüber, ob ein Wert nicht richtig ist.

Zusätzlich ist es eine Kontrolle, da dieser Wert aus mit noch unbekannten Gründen geändert wird. Und ich kan jetzt genau den Tag sehen wann diese Wert wieder anderes ist.
Bitte warten ..
Mitglied: 17467
20.01.2007 um 19:45 Uhr
kleines edit

die Datei in der die Ergebnisse stehen soll noch mit im Dateinamen das Datum stehen, geht das ?
Bitte warten ..
Mitglied: bastla
20.01.2007 um 21:22 Uhr
Hallo ranjid!

Ändere die "set file="-Zeile auf
01.
set file="D:\RegTest\<b>%date:~6,4%-%date:~3,2%-%date:~0,2%-</b>RegCheck.txt"
Grüße
bastla
Bitte warten ..
Mitglied: 17467
20.01.2007 um 22:46 Uhr
sieht auch gut aus, weil das Datum auch richtig angezeigt wird !!!
Bitte warten ..
Mitglied: Biber
21.01.2007 um 12:54 Uhr
Nur um zu zeigen, dass es auch mit einem (formatierten) Einzeiler geht:

01.
::--- snipp RegsAuswert.bat 
02.
@for %%x in ("EnableSecuritysignature.=dword:00000001"^ 
03.
            "RequireSecuritySignature.=dword:00000001"^ 
04.
            "OpenInternetWith.=dword:00000001"^ 
05.
            "EnablePlainTextPassword.=dword:00000001") do @( 
06.
    for /f %%i in ('findstr /im /R "%%x" c:\reglogs\*.*') do @echo %%~ni %%x 
07.
    )
...liefert, wenn er über die Dateien in c:\Reglogs schrapelt, folgenden Beispiel-Output bei mir:
01.
$cmd$RegsAuswert.bat 
02.
 
03.
compi15 "EnableSecuritysignature.=dword:00000001" 
04.
compi18 "EnableSecuritysignature.=dword:00000001" 
05.
compi21 "EnableSecuritysignature.=dword:00000001" 
06.
compi30 "EnableSecuritysignature.=dword:00000001" 
07.
compi16 "RequireSecuritySignature.=dword:00000001" 
08.
compi20 "RequireSecuritySignature.=dword:00000001" 
09.
compi24 "RequireSecuritySignature.=dword:00000001" 
10.
compi28 "RequireSecuritySignature.=dword:00000001" 
11.
compi12 "OpenInternetWith.=dword:00000001" 
12.
compi17 "OpenInternetWith.=dword:00000001" 
13.
compi22 "OpenInternetWith.=dword:00000001" 
14.
compi27 "OpenInternetWith.=dword:00000001"
Wenn ich diese Info ohne das (erläuternde) %%x, also den Suchstring ausgeben will, kann ich das letzte %%x am Ende ja weglassen.
Und den ganzen Krempel in die neue Zeitstempel-Datei leiten ginge mit:
RegsAuswert >D:\RegTest\%date:~6,4%-%date:~3,2%-%date:~0,2%-RegCheck.txt"

Denke, die "Massen"-Verarbeitung über FindStr-mit-Wildcards ist ein Vielfaches schneller als die Nachbildung per FOR-Anweisungen.

Und für mich ist der Einzeiler immer noch les- und wartbar. *gg

Grüße
Biber
Bitte warten ..
Mitglied: bastla
21.01.2007 um 17:38 Uhr
@Biber

Sehr schöne Lösung.

Hinsichtlich Wartbarkeit: An Stelle der direkten Angabe könnten die Suchstrings bei wachsendem Umfang ja auch aus einer Textdatei kommen (ohne den "One-Liner-Status" zu beeinträchtigen ).

Denke, die "Massen"-Verarbeitung über FindStr-mit-Wildcards ist ein Vielfaches schneller als die Nachbildung per FOR-Anweisungen.

Full ACK. Bei mir da oben war's ein typischer Fall von Betriebsblindheit: "findstr" verwende ich praktisch nur, um irgendwelche Ausgabelisten einzudampfen - die "eigentliche" Funktionalität ("Suchen von Dateien nach Inhalt") hatte ich schon ganz verdrängt.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
21.01.2007 um 20:09 Uhr
Danke, bastla.

"Hinsichtlich Wartbarkeit": ein FULL ACK von mir zurück.

Wo ich doch sogar schon bei simplen Batch-Dateien immer lamentiere, doch bitte Daten und Code zu trennen...

Wenn der Schnipsel bei mir "produktiv" wäre, hätte er zwei Parameter:
(1) Name der Suchstring-Datei
(2) QuellDir/evtl. Wildcards der zu durchsuchende Dateien.

Also bestünde sinngemäß aus der Zeile:
01.
::--- snipp RegsAuswert-mit-Param.bat 
02.
@for /f %%x in (%1) do @ for /f %%i in ('findstr /im /R "%%x" %2') do @echo %%~ni %%x
wo bei Parameter %1 eine Datei "Suchwerte.txt" dieser Form wäre:
01.
::--- snipp Suchwerte.txt 
02.
EnableSecuritysignature.=dword:00000001 
03.
RequireSecuritySignature.=dword:00000001 
04.
OpenInternetWith.=dword:00000001 
05.
EnablePlainTextPassword.=dword:00000001
... wobei (hab ich vorhin vergessen zu erwähnen) das Anführungszeichen im Suchstring für den FindStr.exe-Aufruf durch einen "." ersetzt werden muss.

Ist ungetestet, weil... ich glaube nicht, dass ich mir dafür einen Batch schreiben würde...

Grüße
Biber
Bitte warten ..
Mitglied: 17467
21.01.2007 um 20:32 Uhr
ich will ja nicht stören .... ;>))

aber könnt ihr die Schnipsel mal zusammen fügen, damit ich das erkennen kann ...

thanks ....
Bitte warten ..
Mitglied: Biber
21.01.2007 um 20:48 Uhr
Moin ranjid,

nimm aus meinem vorletzten Kommentar den Schnipsel "Regsauswert.bat", Copy&Paste den in eine gleichnamige Datei und passe die Suchstrings und den Pfad "c:\Reglogs\*.*" an.
- Oder-
Lege Dir eine Textdatei "Suchwerte.txt" an wie im letzten Posting und kopiere die eine Zeile "RegsAuswert-mit.Param.bat" in eine *.bat-Datei.

im 2. Fall aufrufen mit "Regsauswert.bat D:\einPfad\Suchwerte.txt D:\einpfad\DerRegDateien\*.*".

Mehr Hexenwerk ist nicht dabei.

Gruß
Biber
Bitte warten ..
Mitglied: bastla
21.01.2007 um 20:53 Uhr
... und vielleicht noch die Umleitung der Ausgabe dazu, also Aufruf (für die letzte Variante):
01.
Regsauswert.bat D:\einPfad\Suchwerte.txt D:\einpfad\DerRegDateien\*.*  > D:\nocheinPfad\%date:~6,4%-%date:~3,2%-%date:~0,2%-RegCheck.txt
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
VB for Applications
PDF Datei auslesen und per VBA in Excel schreiben
gelöst Frage von Julian8990VB for Applications3 Kommentare

Hallo zusammen! Ich bin auf folgenden Threat gestoßen, und konnte auch schon einige Erfolge erzielen! Mein Problem ist ein ...

Batch & Shell
Dateinamen mit vbs auslesen und in eine TXT Datei schreiben
gelöst Frage von KeiosIDBatch & Shell5 Kommentare

Hallo, ich hoffe mal, das ist das richtige Unterforum. Nach diversen suchen und Hilfe aus einem Windows Scripting Buch ...

Windows Systemdateien
Registry-Schlüssel per Batch auslesen und in Datei schreiben
gelöst Frage von PhilzipWindows Systemdateien9 Kommentare

Hallo zusammen, ich habe mir vorhin einen Befehl gebastelt, der die Installierte Version von NET Framework auslesen und in ...

Batch & Shell
Batch Datei: Alte Dateien in div. Unterordnern löschen
gelöst Frage von simonsaysBatch & Shell11 Kommentare

Hallo zusammen Ich habe einen Ordner "xxx" in diesem Ordner sind Unterordner "yyy" und "zzz" - xxx yyy zzz ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 8 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 15 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 104 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless18 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...