3687409639
Goto Top

Leere Textdateien finden (mit Batch oder VBA)

Hallo zusammen,

ich habe folgendes Problem und hoffe das jemand helfen kann.

Einen Ordner mit 10.000 verschiedenen Textdateien. Alle sind gleich groß (1KB), jedoch gibt es leere Textdateien, also ohne Zeilen.

Ich suche eine Möglichkeit um die leeren Textdateien irgendwie kenntlich zu machen ob sie dann anschließend löschen zu können.

Vielen Dank im Voraus.

Content-ID: 3687460285

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

Printed on: October 5, 2024 at 10:10 o'clock

3479126418
3479126418 Aug 18, 2022 updated at 09:30:38 (UTC)
Goto Top
Get-ChildItem 'E:\Ordner' -File -Filter *.txt -Recurse | ?{$_.Length -eq 0} | remove-item -force -verbose  
oder
Get-ChildItem 'E:\Ordner' -File -Filter *.txt -Recurse | ?{(Get-Content $_.Fullname) -eq $null} | remove-item -force -verbose  
3687409639
3687409639 Aug 18, 2022 at 09:46:03 (UTC)
Goto Top
Wenn ich den Befehl in die Kommandozeile eingebe zeigt er eine Fehlermeldung an face-sad
MrCount
MrCount Aug 18, 2022 updated at 09:47:44 (UTC)
Goto Top
Zitat von @3687409639:

Wenn ich den Befehl in die Kommandozeile eingebe zeigt er eine Fehlermeldung an face-sad

Das ist Powershell... face-wink

Die Fehlermeldung wäre hilfreich.
3687409639
3687409639 Aug 18, 2022 at 09:48:53 (UTC)
Goto Top
Achsooo, geht das nicht auch mit Batch oder VBA, weil ich kein Zugriff auf Powershell habe.
3479126418
Solution 3479126418 Aug 18, 2022 updated at 10:03:50 (UTC)
Goto Top
> Zitat von @3687409639:
Wenn ich den Befehl in die Kommandozeile eingebe zeigt er eine Fehlermeldung an face-sad
Aha, YMMD 😂.

@echo off
for /f "delims=" %%a in ('dir /b /s /a-d "E:\Daten\*.txt"') do if %%~za == 0 del /f "%%a"  
TwistedAir
TwistedAir Aug 18, 2022 at 10:14:18 (UTC)
Goto Top
Hallo!

Einen Ordner mit 10.000 verschiedenen Textdateien. Alle sind gleich groß (1KB), jedoch gibt es leere Textdateien, also ohne Zeilen.

Wenn die Textdatei "ohne Zeilen" ist, dann ist auch ihre Größe 0 Bytes. Guckst du vielleicht im Explorer, der die Angaben in KB ausgibt? Auf der Kommandozeile siehst du die exakte Größe in Bytes.

Unterscheiden musst du allerdings zwischen "ohne Zeilen" und "leere Zeilen", denn für jede Zeile ohne Text fallen 2 Bytes an, also 20 leere Zeilen = 40 Bytes. Damit sollte schon eine Unterscheidung zu den "gehaltvollen" Textdateien möglich sein. Alternativ könntest du alle leeren Zeilen entfernen - dann schrumpft eine Datei ohne Inhalt auf 0 Bytes und du hast dein Unterscheidungsmerkmal.

Gruß
TA