Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 21. Mai 2019, 18:50
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
Code:
set RETAINBACKUPS=1
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.

Code:
dir /AD
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:
Code:
dir /AD
Nur will er mir bei einem Backup immer noch das älteste und neuste löschen.
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (21. Mai 2019 um 19:18 Uhr)
  Mit Zitat antworten Zitat