Irgendwie sehe ich keine Ausgabe bis auf die Pause Befehle. Müsste das Script nicht
Zitat:
rmdir /S /Q "%BACKUPDIR%\%%F"
ausgeben?
Code:
@echo off
set RETAINBACKUPS=15
set BACKUPDIR=D:\
if not exist "%BACKUPDIR%" (
echo.
echo "%BACKUPDIR%" existiert nicht.
echo.
pause
goto :EOF
)
pause
for /F "skip=%RETAINBACKUPS% delims=" %%F IN ('dir /B /AD /O-D "%BACKUPDIR%" 2^>NUL') DO (
echo rmdir /S /Q "%BACKUPDIR%\%%F"
)
pause
rem freien Speicherplatz anzeigen
rem for /f "tokens=3" %%i in ('dir /-c^|findstr /c:"Bytes frei"') do set tmp=%%i
rem echo Freier Speicherplatz auf Laufwerk D: %tmp:~0,3% GB
pause
Jetzt geht es. Ausgabe:
Code:
rmdir /S /Q "D:\\$RECYCLE.BIN"
rmdir /S /Q "D:\\System Volume Information"
Bei
Ich habe jetzt die Verzeichnisse
Code:
2019-05-10 13-41
2019-05-18 13-41
2019-05-21 13-41
Gebe ich an er soll 3 behalten, bekomme ich die Ausgabe:
Code:
rmdir /S /Q "D:\\$RECYCLE.BIN"
rmdir /S /Q "D:\\System Volume Information"
Das passt. Aber natürlich soll er die Systemordner nicht löschen.
Gebe ich an er soll 1 behalten, bekomme ich die Ausgabe:
Code:
rmdir /S /Q "D:\\2019-05-10 13-41"
rmdir /S /Q "D:\\2019-05-21 13-41"
rmdir /S /Q "D:\\$RECYCLE.BIN"
rmdir /S /Q "D:\\System Volume Information"
Er löscht also das älteste und das neuste.
liefert mir
Code:
D:\>dir /AD
Datenträger in Laufwerk D: ist Backup
Volumeseriennummer: B860-37EC
Verzeichnis von D:\
2019-05-21 13:31 <DIR> $RECYCLE.BIN
2019-05-21 20:00 <DIR> 2019-05-10 13-41
2019-05-21 20:00 <DIR> 2019-05-18 13-41
2019-05-21 14:58 <DIR> 2019-05-21 13-41
2019-05-21 13:30 <DIR> System Volume Information
0 Datei(en), 0 Bytes
5 Verzeichnis(se), 833.302.568.960 Bytes frei
Wenn ich dir so hinbekomme, dass es die Systemverzeichnisse nicht anzeigt, wäre das Problem wahrscheinlich gelöst.
Habs:
Nur will er mir bei einem Backup immer noch das älteste und neuste löschen.