Lösche per Batch bestimmte Zeichenfolge oder Satzfolge anhand einer vorgegebenen Liste
Die ist eine weiterführende Frage beruhend auf diesem Thread:
https://www.administrator.de/forum/per-batch-texteile-entfernen-und-vers ...
Zur Beantwortung ist das lesen des Threads aber nicht zwingend Notwendig.
Ich habe eine Texdatei mit folgendem Aufbau:
Datei;Datum;Beschreibung
Nun wurde diese aus telweise recht aufwendigen Ascii Kunstwerken erstellt, was eine Flut an Sonderzeichen zur Folge hat. Den Großteil davon konnte ich schon mittels eines Scriptes in den Griff bekommen. Was übrig bleibt sind teilweise immer wieder kehrende Satzbausteine und Zeichenfolgen:
Beispiel:
Nun sind "l_____l____\___X|l____\-l___\----------------" oder "========================[Bearbeitet von MA]==" Bausteine die immer wiederkehren und sich somit leicht ersetzen lassen.
Ich möchte nun also meine Original Datei per Batch nach diesen Bausteinen durchsuchen und diese löschen.
Die Bausteine möchte ich in einer Textdatei eintragen kann (Pro Abfolge eine Zeile):
so dass diese bei neu auftauchenden Bausteinen stetig erweitert werden kann.
Würde mich freuen wenn sich jemand meiner Sache annimmt.
Vielen Dank schonmal fürs anschauen und viele Grüße
Robert
https://www.administrator.de/forum/per-batch-texteile-entfernen-und-vers ...
Zur Beantwortung ist das lesen des Threads aber nicht zwingend Notwendig.
Ich habe eine Texdatei mit folgendem Aufbau:
Datei;Datum;Beschreibung
Nun wurde diese aus telweise recht aufwendigen Ascii Kunstwerken erstellt, was eine Flut an Sonderzeichen zur Folge hat. Den Großteil davon konnte ich schon mittels eines Scriptes in den Griff bekommen. Was übrig bleibt sind teilweise immer wieder kehrende Satzbausteine und Zeichenfolgen:
Beispiel:
ma-mmm.txt;12-03-1980;l_____l____\___X|l____\-l___\----------------Musterplan A-3========================[Bearbeitet von MA]==
xx-xxx.zip:15-06-1983;`--\__|--:--:--\__|--:--:--l___\--Aktenordner / Planübersicht
Nun sind "l_____l____\___X|l____\-l___\----------------" oder "========================[Bearbeitet von MA]==" Bausteine die immer wiederkehren und sich somit leicht ersetzen lassen.
Ich möchte nun also meine Original Datei per Batch nach diesen Bausteinen durchsuchen und diese löschen.
Die Bausteine möchte ich in einer Textdatei eintragen kann (Pro Abfolge eine Zeile):
l_____l____\___X|l____\-l___\----------------
========================[Bearbeitet von MA]==
`--\__|--:--:--\__|--:--:--l___\--
so dass diese bei neu auftauchenden Bausteinen stetig erweitert werden kann.
Würde mich freuen wenn sich jemand meiner Sache annimmt.
Vielen Dank schonmal fürs anschauen und viele Grüße
Robert
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 204752
Url: https://administrator.de/forum/loesche-per-batch-bestimmte-zeichenfolge-oder-satzfolge-anhand-einer-vorgegebenen-liste-204752.html
Ausgedruckt am: 11.01.2025 um 01:01 Uhr
5 Kommentare
Neuester Kommentar
Hallo Robert,
das geht nicht nur mit findstr. Das könnte man aber selber scripten, einen "search-and-replace"-Hybriden aus Batch und VBS anpassen oder vllt. ein gnuWIN-Tool mit Regex benutzen, oder... Kommt darauf an, wiviele Daten umzuwandeln sind & wieviel Zeit dafür zur Verfügung steht (scripten, einarbeiten usw.). Ich kann nur Batch
Gruss!
das geht nicht nur mit findstr. Das könnte man aber selber scripten, einen "search-and-replace"-Hybriden aus Batch und VBS anpassen oder vllt. ein gnuWIN-Tool mit Regex benutzen, oder... Kommt darauf an, wiviele Daten umzuwandeln sind & wieviel Zeit dafür zur Verfügung steht (scripten, einarbeiten usw.). Ich kann nur Batch
Gruss!
@ Endoro
verwenden ...
Grüße
bastla
einen "search-and-replace"-Hybriden aus Batch und VBS anpassen
... oder gleich ein VBS-only-Script der ArtEin = "D:\DeinText.txt"
Aus = "D:\DeinText_bereinigt.txt"
Liste = "D:\Ersetzungsliste.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
T = fso.OpenTextFile(Ein).ReadAll
E = Split(fso.OpenTextFile(Liste).ReadAll, vbNewline)
For Each Ersetzung In E
If Trim(Ersetzung) <> "" Then 'Zeile nicht leer
T = Replace(T, Ersetzung, "")
End If
Next
fso.CreateTextFile(Aus).Write T
Grüße
bastla