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

Mitglied: 17467

17467 (Level 1)

20.01.2007, aktualisiert 03.02.2010, 5406 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
CSS
Div boxen nebeneinander platzieren
Frage von deinernstjetztCSS5 Kommentare

Hallo, ich schreibe an einer Website, die aus Überschrift, Seitenverzeichniss und Text besteht. Im Seitenverzeichniss(div box 1) stehen Buttons ...

CSS
Positionierung von DIV - Sidebar
gelöst Frage von chris84CSS5 Kommentare

Hallo Zusammen, ich möchte gern ein eine Sidebar auf meiner Seite einbauen. Leider wird diese aktuell am DIV "Company" ...

Windows Server

Freigabe führt nicht zur Schreib-Berechtigung

gelöst Frage von ElmaCxWindows Server11 Kommentare

Hallo miteinander, ich bin seit 2 Tagen an einer Berechtigungs Problematik zu Gange, bei welcher ich die Lösung nicht ...

Server

Freenas schlechte Schreib Performance bei NFS

Frage von janosch12Server17 Kommentare

Hallo, ich habe momentan das Problem das die Performance bei NFS zu wünschen über lässt Schreiben max 100 Mbit/s ...

Neue Wissensbeiträge
Windows Server
Anzahl von Gruppenrichtlinien
Erfahrungsbericht von Bullii vor 3 StundenWindows Server

Hallo, mich interessiert brennend, wieviele Gruppenrichtlinienobjekte, ihr so bei euch habt? Ich versuchte eigentlich immer die Gruppenrichtlinienobjekte soweit wie ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 7 StundeniOS

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 19 StundeniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 2 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Server
Server in zwei verschiedene Netzwerke einbinden
gelöst Frage von BennyFServer13 Kommentare

Hallo zusammen, bei uns im Haus sind im Erdgeschoss die Geschäftsräume und ab dem 1. Stock sind unsere privaten ...

Netzwerkmanagement
Ticketsystem für eine Kommune gesucht
gelöst Frage von akovisNetzwerkmanagement11 Kommentare

Ich suche aktuell ein Ticketsystem für eine Kleinstadt von 13000 Einwaohnern. Das System soll alle Anfragen aus verschiedenen Kanälen ...

Outlook & Mail
Kalendersync mit Android und Outlook
Frage von Stefan007Outlook & Mail10 Kommentare

Hi Leute, kennt jemand eine Möglichkeit um Termine zwischen installiertem Outlook auf dem PC und dem Kalender auf einem ...