andreasgi
Goto Top

BAT Datei zum Löschen bestimmter Dateien nach Muster in mehreren Ordnern und Unterordnern

Hallo Forum!

folgende Konstellation:

nach mehr oder weniger erfolgreicher Datenrettung habe ich knapp 400 GB an Daten. Darunter ist auch viel Müll, welche ich zum großen Teil schon beseitigt habe. Leider sind bei der Rettung von Bildern auch viele Bilder mit der Größe von unter 100kb wiederhergestellt worden; da ich weiß, dass die relevanten Bilder größer sind, möchte ich diese (circa 500.000) automatisch löschen. Durch google habe ich jedenfalls schon einmal den Befehl für einen Ordner zusammen bekommen:

for %%i in ("H:\*.jpg") do if %%~zi lss 100000 del "%%i"

Da ich leider keine Ahnung von der Scriptsprache habe brauche ich bei folgendem Punkt Hilfe:

wie muss dieser Teil umgeschrieben werden, dass alle ~4.000 Ordner in H:\ sowie die ggf. vorhandenen Unterordner automatisch angesteuert werden?

Vielen Dank schon mal im Voraus!

Gruß
Andreas

Content-Key: 305306

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

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

Mitglied: 129413
129413 May 25, 2016 updated at 11:11:31 (UTC)
Goto Top
@echo off
powershell -Executionpolicy ByPass -Command "gci 'H:\' -recurse -Filter *.jpg | ?{!$_.PSIsContainer -and $_.Length -lt 100kb} | remove-item -Force -Verbose"  
Gruß skybird
Member: AndreasGi
AndreasGi May 25, 2016 at 11:40:33 (UTC)
Goto Top
Da war ich ja nicht einmal ansatzweise nah dran. Vielen Dank für die schnelle Hilfe!

Gruß
Andreas
Member: Biber
Biber May 25, 2016 at 13:27:05 (UTC)
Goto Top
Moin AndreasGi,

ich finde, du warst schon ganz nah dran.
Demo am CMD-Prompt:
C:\Users\Biber>for /r "H:\" %i in ("*.jpg") do @if %~zi LSS 100000 @echo Del "%i", weil  %~zi ^< 100000  

Die Demo-Zeile listet erstmal nur mit "@echo Del" alles auf, was sie löschen würde.
Wenn das Ergebnis deinen Wünschen entspricht, das "@echo" weglassen.

Grüße
Biber