Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#8

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 21. Mai 2019, 19:38
Im Code oben fehlte das wichtige IN vor der ersten öffnenden Klammer.

Nun korrigiert und auf Verzeichnisse angepasst:
Code:
@echo off

set RETAINBACKUPS=3
set BACKUPDIR=D:\rive\some\path

if NOT exist "%BACKUPDIR%" (
    echo.
    echo "%BACKUPDIR%" existiert nicht.
    echo.
    pause
    goto :EOF
)

for /F "skip=%RETAINBACKUPS% delims=" %%F IN ('dir /B /AD /O-D "%BACKUPDIR%" 2^>NUL') DO (
    echo rmdir /S /Q "%BACKUPDIR%\%%F"
)
Wenn die Ausgabe passt, kannst du einfach das echo vor dem rmdir entfernen, um tatsächlich zu löschen. Es sollte klar sein, dass derartige Löschaktionen endgültig sind. Also immer schön testen, ggf. mit Kopien.

[EDIT]
Noch eine Kleinigkeit: Die Zahl der verbleibenden Stufen ist eigentlich nicht ganz korrekt. Es werden so viele Stufen behalten wie angegeben, aber wenn das neue Backup nach dem Löschen erfolgt, liegt letztlich eine Stufe mehr im %BACKUPDIR%.
[/EDIT]

Grüße
Dalai

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