![]() |
AW: Batchscript zum automatischen Löschen von Dateien
Deine Verzeichnisse fangen doch alle irgendwie mit 2 an (Jahreszahl).
Ergänze mal das Dir um 2*.*, damit die anderen Verzeichnisse nicht mit ausgegeben werden, davon willst Du ja auch (höchstwahrscheinlich) nix löschen. Ein im realen Leben ausgeführtes
Code:
käme vermutlich nicht so gut :-(
rmdir /S /Q "D:\\System Volume Information"
Eventuell
Code:
@echo off
rem Anzahl der Verzeichnisse, die uebrig bleiben sollen? set RETAINBACKUPS=15 rem ohne Backslash am Ende, der wird später mit den Verzeichnisnamen angehängt. 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-r-s-h /O-D 2*.* "%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 |
AW: Batchscript zum automatischen Löschen von Dateien
Backup im Root eines Laufwerks hatte ich auch noch nicht. Das sollte recht einfach zu beheben sein, wenn du die Syntax deiner Verzeichnisse mit einbeziehst:
Code:
Übrigens lässt sich "System Volume Information" nur mit SYSTEM-Rechten betreten und daher auch mit Adminrechte nicht löschen. Nichtsdestotrotz ist es natürlich besser, wenn das erst gar nicht beachtet wird.
... IN ('dir /B /AD /O-D "%BACKUPDIR%\*-*-* *-*" 2^>NUL') ...
Grüße Dalai |
AW: Batchscript zum automatischen Löschen von Dateien
Ausgangssituation:
Code:
Mit
2019-05-10 13-41
2019-05-18 13-41 2019-05-21 13-41
Code:
...bekomme ich:
@echo off
set RETAINBACKUPS=1 set BACKUPDIR=D:\ if not exist "%BACKUPDIR%" ( echo. echo "%BACKUPDIR%" existiert nicht. echo. pause goto :EOF ) rem freien Speicherplatz anzeigen for /f "tokens=3" %%i in ('dir /-c^|findstr /c:"Bytes frei"') do set tmp=%%i echo Freier Speicherplatz auf Laufwerk D: %tmp:~0,3% GB echo. rem alte Backups loeschen choice /M "Alte Sicherung(en) loeschen?" /C JN if %ERRORLEVEL% == 1 goto DEL_OLDEST if %ERRORLEVEL% == 2 goto DO_BACKUP :DEL_OlDEST echo Loesche alte Sicherungen... echo. for /F "skip=%RETAINBACKUPS% delims=" %%F IN ('dir /B /AD-r-s-h /O-D 2*.* "%BACKUPDIR%" 2^>NUL') DO ( echo rmdir /S /Q "%BACKUPDIR%\%%F" ) pause
Code:
Ächtz.
Freier Speicherplatz auf Laufwerk D: 833 GB
Alte Sicherung(en) loeschen? [J,N]?J Loesche alte Sicherungen... rmdir /S /Q "D:\\2019-05-18 13-41" rmdir /S /Q "D:\\2019-05-10 13-41" rmdir /S /Q "D:\\2019-05-10 13-41" rmdir /S /Q "D:\\2019-05-21 13-41" rmdir /S /Q "D:\\2019-05-21 13-41" Drücken Sie eine beliebige Taste . . . Er soll fünf behalten, es sind drei vorhanden und er will die neuste Sicherung zwei mal löschen. |
AW: Batchscript zum automatischen Löschen von Dateien
Weiß nicht, ob mein Beitrag von 20:31 übersehen wurde. Mit dem dort gegebenen Pattern sollte es klappen.
Grüße Dalai |
AW: Batchscript zum automatischen Löschen von Dateien
Das Problem scheint aber nicht das Pattern zu sein, sondern die doppelte Aufführung der Verzeichnisse im Dir-Ergebnis.
Es werden alle Verzeichnisse zwei mal ausgegeben und davon wird dann das Erste übersprungen. 3 Verzeichnisse * 2 = 6 minus dem 1. = 5 Verzeichnisse in der Ausgabe. Wie sieht das Ergebnis von
Code:
auf der Kommandozeile aus?
for /F "skip=%RETAINBACKUPS% delims=" %F IN ('dir /B /AD-r-s-h /O-D "%BACKUPDIR%\2???-??-?? ??-??"') DO echo rmdir /S /Q "%BACKUPDIR%\%F"
|
AW: Batchscript zum automatischen Löschen von Dateien
Zitat:
Grüße Dalai |
AW: Batchscript zum automatischen Löschen von Dateien
Erst muss ich mein Windows wieder zu Laufen bringen. Nach einem Windows Update ist er bei der Konfiguration des Updates hängen geblieben.
|
AW: Batchscript zum automatischen Löschen von Dateien
Mit
Code:
bekomme ich:
for /F "skip=%RETAINBACKUPS% delims=" %%F IN ('dir /B /AD-r-s-h /O-D *-*-* *-* "%BACKUPDIR%" 2^>NUL') DO (
echo rmdir /S /Q "%BACKUPDIR%\%%F" )
Code:
bei: set RETAINBACKUPS=1
Alte Sicherung(en) loeschen? [J,N]?J
Loesche alte Sicherungen... rmdir /S /Q "D:\\2019-05-18 13-41" rmdir /S /Q "D:\\2019-05-18 13-41" rmdir /S /Q "D:\\2019-05-10 13-41" rmdir /S /Q "D:\\2019-05-10 13-41" rmdir /S /Q "D:\\2019-05-10 13-41" rmdir /S /Q "D:\\2019-05-21 13-41" rmdir /S /Q "D:\\2019-05-21 13-41" rmdir /S /Q "D:\\2019-05-21 13-41" Drücken Sie eine beliebige Taste . . . Mit 2???-??-?? ??-?? findet er gar nichts. |
AW: Batchscript zum automatischen Löschen von Dateien
Deswegen schrieb ich ja das Pattern hinter das %BACKUPDIR%. Siehe Beitrag #12.
Grüße Dalai |
AW: Batchscript zum automatischen Löschen von Dateien
Autsch. Ganz übersehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz