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/forum/leere-textdateien-finden-mit-batch-oder-vba-3687460285.html

Ausgedruckt am: 22.12.2024 um 15:12 Uhr

3479126418
3479126418 18.08.2022 aktualisiert um 11:30:38 Uhr
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 18.08.2022 um 11:46:03 Uhr
Goto Top
Wenn ich den Befehl in die Kommandozeile eingebe zeigt er eine Fehlermeldung an face-sad
MrCount
MrCount 18.08.2022 aktualisiert um 11:47:44 Uhr
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 18.08.2022 um 11:48:53 Uhr
Goto Top
Achsooo, geht das nicht auch mit Batch oder VBA, weil ich kein Zugriff auf Powershell habe.
3479126418
Lösung 3479126418 18.08.2022 aktualisiert um 12:03:50 Uhr
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 18.08.2022 um 12:14:18 Uhr
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