Batch Datei zum löschen von Dateien die älter als 10 Tage sind?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Mit dir kann man zwar nach Datum sortieren aber einschränken geht nicht. Den einzigen Befehl den ich in Erinnerung hab, der mit Dateien und Zeitspanne gleichzeitig arbeitet ist robocopy.

Mein Ansatz wäre jetzt alle *.zip Dateien, die älter als 5 Tage sind in einen extra Ordner zu verschieben (dann könnte der User auch noch schauen ob er doch noch was davon braucht, praktisch ein Papierkorb) und dessen Inhalt dann zu löschen.

@echo off
set "folder=%userprofile%\ZipPapierkorb\"

if not exist %folder%path.txt ( set /p "cd=Bitte Pfad oder Laufwerk eingeben: >" && echo %cd% > %folder%path.txt ) else ( set /p cd=<%folder%path.txt )
if not exist %folder%info.txt (
    mkdir %folder%
    echo Dieser Ordner enthält alle zip-Ordner die aelter als 5 Tage sind. > %folder%info.txt
)

robocopy %cd% %folder% *.zip /E /MOVE /MINAGE:5

echo .zip Dateien in %folder% verschoben.
choice /m "Alle loeschen?"

if %errorlevel% EQU 1 (
    for %%D in (%folder%*.zip) do del /f /s /q %%D
)

Habs nicht getestet, schau mal obs klappt ;)

~Tim


timlg07  19.08.2017, 20:33

statt cd sollte man wohl lieber einen anderen Variablennamen verwenden, hab ich nicht drangedacht

0

Guter Ansatz, ich kann dir jetzt nicht sagen ob die Batch fehlerfrei ist oder so funktioniert. Aber du solltest sie dann in den Ordner Shell:Startup legen, dass die auch bei jedem Systemstart ausgeführt wird, sonst müsstest du das ja jedes mal manuell starten.


Kicker6880 
Beitragsersteller
 18.08.2017, 09:55

Ich hatte eigentlich vor die Batch Datei im Task Scheduler in Windows einzubinden, sodass sie immer automatisch ausgeführt wird

0
FORFILES /P c:\temp /D -5 /C "cmd /c echo @path"

Teste und passe an.

Dann ersetze echo durch del /q.