Dieses Script löscht in einem anzugebenden Ordner Dateien, wobei die neuesten aufbewahrt werden.
Der Ordner (Variable WORKFOLDER), die Anzahl der aufzubewahrenden Dateien (KEEPFILES) und die Endung der Dateien (WORKEXT) wird über Variablen im Script gesteuert.
@echo off setlocal set WORKFOLDER=D:\deltest rem *** WORKFOLDER gibt den Ordner an, der bearbeitet werden soll set WORKEXT=* rem *** WORKEXT gibt die Endung an, die als Filter gesetzt wird (*=alle; bmp=nur Bitmaps) set KEEPFILES=12 rem *** KEEPFILES ist die Anzahl der Dateien, die aufbewahrt werden set COUNTER=0 for /F %%i in ('dir /O-D /A-D /B "%WORKFOLDER%\*.%WORKEXT%"') do call :PARSELINE "%%i" endlocal goto :EOF :PARSELINE set /A COUNTER=COUNTER+1 if %COUNTER% LEQ %KEEPFILES% goto :EOF set WORKFILE=%1 set WORKFILE=%WORKFILE:"=% rem *** Nicht wundern, die Zeile darueber dient dazu, die Anfuehrungszeichen wieder rauszuwerfen echo Loesche Dateinummer %COUNTER%: %WORKFOLDER%\%WORKFILE% del /F "%WORKFOLDER%\%WORKFILE%" goto :EOF |
Wenn man bei der WORKEXT z.B. BMP einsetzt werden nur BMP-Dateien bearbeitet, d.h. es werden alle BMPs bis auf die 12 neuesten gelöscht. Alle anderen Files werden nicht angefasst!