2016-04-24 5 views
0

Ich besitze derzeit alle 6 Stunden einen Ordner auf meinem Desktop in einem anderen Ordner mit dem Taskplaner und einer Batchdatei mit xcopy. Wie lösche ich beispielsweise Backups, die älter als 12 Backups sind? Zum Beispiel, wenn ich bereits 12 Backups habe und es die nächste 6-Stunden-Markierung ist, sichert es den Quellordner und löscht dann das älteste Backup, da es jetzt 13 gibt, so dass es nur 12 gibt. YYYY-MM-DD_HHMMWie schaffe ich einen Ordner und lösche alte Backups mit Hilfe des Task Schedulers

(24-Stunden-Format)

Antwort

1

Sie waren nicht sehr klar:

Meine Ordner sind wie so formatiert. Unter der Annahme, sind Ihre Backups Ordner, mit dem Namen etwas wie BackupYYYYMMDD

dir /b /ad /o-n backup* gibt Ihnen Ihr backupfolders (einfaches Format, Verzeichnisse nur nach Namen sortiert, (umgekehrt mit der neuesten) * zu starten)

Setzen Sie, dass in ein for /f zu die Ausgabe analysieren um 12 Zeilen überspringen, was zu:

for /f "skip=12 tokens=*" %%i in ('dir /b /ad /o-n backup*') do ECHO rd /s /q %%i 

die ECHO entfernen, wenn der Ausgang in Ordnung zu sein scheint.

*) wenn Sie ein anderes Datumsformat haben, besser /o-d verwenden (nach Datum sortiert, neueste zuerst)

für backupfolders wie YYYY-MM-DD_HHMM genannt Sie dir /b /ad /o-n ????-??-??_???? verwenden können, die Chancen zu minimieren, die alle anderen Ordner gezählt werden oder davon betroffen sind.

+0

Scheint perfekt zu funktionieren, danke! –