m4dddd
Goto Top

Textdatei löschen wenn bestimmer Inhalt fehlt

Hallo,

ist es möglich über eine Batchdatei folgendes zu realisieren:

Eine Textdatei enthält diverse Daten. Davon gibt es 50 Stück täglich. Über eine Batch soll überprüft werden, wenn folgender Text z. B. "ABC123" nicht enthalten ist, soll diese komplette Textdatei gelöscht werden. Überall wo dieser Zeichensatz enthalten ist, soll nichts passiern.

Wie könnte die Batch aussehen? Vielen Dank jetzt schon mal. face-smile

Content-Key: 85674

Url: https://administrator.de/contentid/85674

Printed on: April 23, 2024 at 07:04 o'clock

Member: bastla
bastla Apr 16, 2008 at 13:39:13 (UTC)
Goto Top
Hallo m4dddd!

Eigentlich genügt dafür eine Zeile:
@for %%i in ("D:\Dein Ordner\*.txt") do @findstr "ABCD123" "%%i">nul || @echo del "%%i%  
Falls sich auch andere Dateien im selben Ordner befinden sollten, wäre zu überlegen, wie sich die Dateiauswahl auf die "richtigen" beschränken lässt, etwa "D:\Dein Ordner\ABC*.txt" - dies insbesondere, wenn es noch andere ".txt"-Dateien gibt.

Zur Sicherheit steht in der obigen Zeile ein "@echo" vor dem Löschbefehl - so werden die zu löschenden Dateien nur angezeigt. Wenn Du wirklich löschen willst, das "@echo" einfach entfernen.

Zum Testen ist es übrigens sinnvoll, den Batch direkt von der Kommandozeile zu starten, oder als zweite Zeile "@pause" hinzuzufügen.

Grüße
bastla
Member: Biber
Biber Apr 16, 2008 at 15:10:46 (UTC)
Goto Top
Moin m4dddd,

geringfügige Variation von bastlas Lösung, hier zum Test am CMD-Prompt:
@for /f "delims=" %i in ('findstr /m /i "ABCD123" "D:\Dein Ordner\*.txt"')  do @Echo del "%i"  

Findstr /m gibt nur die Dateinamen (incl.Pfad) der Dateien aus, die den Suchtext enthalten.
Auch hier gilt: wenn es pass, nach dem testen das "@echo" weglassen.

Grüße
Biber
Member: bastla
bastla Apr 16, 2008 at 15:58:29 (UTC)
Goto Top
@Biber

"/m" wollte ich eigentlich auch verwenden, allerdings mit "/v" (weil: "wenn folgender Text z. B. "ABC123" nicht enthalten ist, soll diese komplette Textdatei gelöscht werden") - scheint aber in dieser Kombination nicht zu funktionieren ...

Grüße
bastla
Member: Biber
Biber Apr 16, 2008 at 16:03:44 (UTC)
Goto Top
@bastla

...uuuuuuuuuppps... das "nicht enthalten" hatte ich in der Tat überlesen.
....ja, ich weiß, ich hätte ja auch auf die Überschrift schauen können....

Und ja - die Kombination von "/m" und "/v" ist NICHT vorgesehen und mangels Nachfrage wohl auch nicht in der Planung bei diesen Redmonder Hoffnungsträgern.

Also bitte meinen Exkurs oben als "Off Topic" gedanklich ausblenden oder auf /IGNORE setzen.

Grüße
Biber
Member: m4dddd
m4dddd Apr 17, 2008 at 06:08:58 (UTC)
Goto Top
Super! Hat geklappt! Vielen Dank für die schnellen Antworten! face-smile