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, Zeilen aus Textdateien in eine neue schreiben

Mitglied: Kaffeepause

Kaffeepause (Level 1) - Jetzt verbinden

11.12.2009 um 10:58 Uhr, 7335 Aufrufe, 8 Kommentare

Ich möchte mehrere Textdateien auswerten, d.h. bestimmte Zeilen extrahieren und zusammen mit Parametern in eine neue schreiben.

Hallo,

zunächst einmal bitte ich um Entschuldigung, weil ich diese Frage poste, obwohl es hier schon zig Beiträge zu Batches gibt, die Textzeilen extrahieren. Aber die Syntax einiger Befehle verwirrt mich immer (delims) und bis jetzt klappt es einfach nicht so, wie ich es gern hätte.

Ich habe eine Startskript geschrieben, welches mir die installierten Programme (Registry-Schlüssel) in eine Datei exportiert. Das funktioniert. Nun habe ich pro Computer eine aktuelle Textdatei mit dem Schlüssel der installierten Programme (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall).

Aus diesen möchte ich jeweils die Zeilen extrahieren, in denen der "DisplayName" oder die "DisplayVersion" steht und das dann zusammen mit dem Computernamen (der im Dateinamen steht) in eine gemeinsame Datei schreiben. Als wirklich rudimentäre Softwareinventarisierung. Bitte bietet mir hier keine Software an, mit der ich inventarisieren kann, ich möchte nur die Batch zum Laufen kriegen.

In Deutsch heißt das:
Finde in allen Dateien, die "*_software.log" heißen die Zeilen mit "DisplayName" (und "DisplayVersion") und schreibe diese Zeilen in die Textdatei "Software_Gesamt.log", gefolgt vom Rechnernamen.

Der Rechnername steht immer an Anfang der Log-Datei (computername_software.log).

Also überarbeitet:
Finde in allen Dateien, die "*_software.log" heißen die Zeilen mit "DisplayName" (und "DisplayVersion") und schreibe diese Zeilen in die Textdatei "Gesamt.log", gefolgt von den Zeichen vor dem Unterstrich des aktuellen Dateinamens.


Bis jetzt habe ich nur
01.
findstr "DisplayName" "C:\Temp\*_software.log">>"C:\Temp\Ausgabe\Gesamt.log"
Der rechnet zwar 1-2 Sekunden, aber die erzeugte Datei (Gesamt.log) ist einfach nur 0 kb und damit leer.

Ein Beispiel für die Zeile, die ich extrahieren möchte. So sieht sie in der Originaldatei aus:
01.
"DisplayName"="Conexant AC-Link Audio"

Viele Grüße,
Kaffeepause
Mitglied: 60730
11.12.2009 um 11:14 Uhr
moin,

was liefert denn:

01.
findstr "DisplayName" "C:\Temp\*_software.log"
bist du dir sicher, dass DisplayName tatsächlich in einer Datei *_software.log im Ordner c:\temp drin ist?

Denn wenn es so wäre - müßte die auch angezeigt werden

Ps: Mit was erzeugst du eigentlich die *_Software.log - wenn das Unicode Dateien sind - findet "find" & co nix....
regedit ? oder reg.exe....

Gruß

edit @tsuki - neee die sind Jacke wie Hose ich tippe auf einen export mit regedit...
Bitte warten ..
Mitglied: TsukiSan
11.12.2009 um 11:16 Uhr
lass mal bei
findstr "DisplayName" "C:\Temp\*_software.log">>"C:\Temp\Ausgabe\Gesamt.log"
die Hochkommas bei
"C:\Temp\*_software.log"
weg.

Gruss
Tsuki

Ps.: ansonsten siehe Timos Antwort
Bitte warten ..
Mitglied: Kaffeepause
11.12.2009 um 12:11 Uhr
Hallo und danke für die schnelle Antwort.

Ist ein Export mit Regedit, ja.

OK. Ersten Fehler gefunden.
Unicode.
Wandel ich eine Datei in ANSI um, dann klappt es mit FINDSTR.

Argh.

Die Hochkommas sind übrigens nicht relevant.

Jetzt muss ich schauen, ob ich den Befehl
01.
REG EXPORT HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
irgendwie so modifizieren kann, dass dabei nicht Unicode BOM, sondern ANSI rauskommt.

Oder ich hab eben gelitten.
Oder ich finde ein Programm, was mir eine Batchkonvertierung von Textdateien macht.



Nur der Vollständigkeit halber:
Wie haue ich den Rechnernamen in die Zieldatei?
Der Rechnername ergibt sich aus den ersten Zeichen der einzelnen Log-Datei.
Also sowas wie:
Schreib mir alle Zeichen vor "_" der aktuell geöffneten Datei in die Zieldatei.

Viele Grüße,
Kaffeepause
Bitte warten ..
Mitglied: Kaffeepause
11.12.2009 um 12:14 Uhr
ANSI-Problem gelöst:
statt
01.
REG EXPORT HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
muss ich den hier nehmen:
01.
regedit /a C:\Ausgabe.txt "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"

Bleibt die Frage, wie ich den aktuellen Dateinamen analysiere und diese Information in der Zieldatei anhänge.
Bitte warten ..
Mitglied: Kaffeepause
11.12.2009 um 12:24 Uhr
Hmmm. Ok.
Da der FINDSTR-Befehl bei der Ausgabe sowieso den aktuellen Dateinamen VORNE dranschreibt, kann ich damit leben.

Also, ANSI statt UNICODE, die Information hat mir weitergeholfen.

Ich setz das mal auf gelöst.

Schönes Wochenende noch.
Die Kaffeepause
Bitte warten ..
Mitglied: TsukiSan
11.12.2009 um 13:14 Uhr
@ Timo,

du hast natürlich vollkommen Recht!
Ich batche halt zu wenig, mea culpa. Mit oder ohne " geht's.
Danke für den Hinweis!

Gruss
Tsuki
Bitte warten ..
Mitglied: 60730
11.12.2009 um 14:26 Uhr
Salü,

Nur der Vollständigkeit halber:
Wie haue ich den Rechnernamen in die Zieldatei?

nicht mit dem Hammer
01.
findstr "DisplayName" "C:\Temp\*_software.log">>"C:\Temp\Ausgabe\Gesamt.log && echo %computername% >>"C:\Temp\Ausgabe\Gesamt.log"
Gruß
Bitte warten ..
Mitglied: Kaffeepause
11.12.2009 um 14:32 Uhr
neee, hehe, DAS geht natürlich nicht. Die Batch führe ich ja von MEINEM Rechner aus.
Da wäre %computername% nicht so der Brüller, weil ich ja dann in jeder Zeile meinen Rechner drin hätte.

Aber, wie ich schrieb, schreibt FINDSTR in der Ausgabe den Namen der Quelldatei an den Anfang. Insofern habe ich den Rechnernamen automatisch drin.

Viele Grüße,
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Erstellungsdatum vor jede Zeile einer Textdatei schreiben

gelöst Frage von freakonaleashBatch & Shell5 Kommentare

Hallo zusammen, ich habe einen Ordner mit ganz vielen Textdateien. Ich bräuchte eine Batch, die in jede Datei vor ...

Batch & Shell

Einen Pfeil in eine textdatei mit batch Schreiben

gelöst Frage von johannes0073Batch & Shell2 Kommentare

Ich stehe vor dem Problehm das ich mit batch datei 1 batch datei 2 Schreiben will das proplehm ist ...

Batch & Shell

Mittels Batch jede Zeile einer Textdatei prüfen

gelöst Frage von Peter32Batch & Shell4 Kommentare

Hallo, ich habe eine Textdatei (Projekte.txt), die etwa so aufgebaut ist Nun möchte ich gerne, dass ein Batch-Script jede ...

Batch & Shell

Bestimmte Zeile einer Textdatei mit Batch auslesen

gelöst Frage von PinkFLuffyUnicornBatch & Shell2 Kommentare

Hi, ich habe ein kleines Batch Script, welches mir den Status der Firewall ausgeben soll(ob an oder aus) der ...

Neue Wissensbeiträge
Router & Routing

Olle Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 StundeRouter & Routing

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 14 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 20 StundenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 1 TagMicrosoft Office5 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless12 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...