1900vfl
Goto Top

Batch schreiben löschen

Hallo zusammen,
ich hoffe das mir hier jmd helfen kann. Ich habe einen Ordner wo Sicherungen drin gespeichert werden, davon möchte ich per batch die ältesten beiden zeitgesteuert löschen!

for /d %%i in (C:\Dokumente und Einstellungen\User\Desktop\Neuer Ordner (2)\test1.txt*.*) do echo rd /s /q "%%i"

testweise so probiert, aber irgendwie verlier ich den faden!

Muss ich für jede Datei die ich löschen will eine eigene bat datei schreiben?
Und wie bekomme ich es hin das immer die ältesten beiden Sicherungen gelöscht werden, ohne Abfrage?

Content-ID: 239593

Url: https://administrator.de/contentid/239593

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

Xaero1982
Xaero1982 30.05.2014 um 10:31:13 Uhr
Goto Top
Moin,

schau dir mal robocopy /? an.

Da kannst du u.a. auch ein Alter der Dateien angeben die gelöscht werden sollen.

Ansonsten Taskplaner?

Oder du machst dir bei jeder Sicherung einen Eintrag in eine Logdatei per Script. Die liest du dann aus und liest die ersten beiden Zeilen ein und löscht die protokollierten Dateien und die beiden Zeilen aus dem Log.

Aber: Wenn du 2 löscht und eine Sicherung machst ist irgendwann keine mehr da face-smile

Gruß
bastla
Lösung bastla 30.05.2014 aktualisiert um 18:35:19 Uhr
Goto Top
Hallo 1900vfl und Xaero1982!

Der Einwand
Wenn du 2 löscht und eine Sicherung machst ist irgendwann keine mehr da face-smile
ist völlig berechtigt, daher sollte die Strategie eher lauten: "Lösche alle bis auf die neuesten 3 Versionen" - womit sich noch die Frage stellt, woran die neuesten Sicherungen zu erkennen sind ...

Da Du "rd" verwenden willst, nehme ich an, dass die Sicherungen nicht aus einer einzelnen Datei bestehen, sondern jeweils in einem Unterordner liegen - falls das Änderungsdatum der Ordner zur Identifizierung der neuesten Sicherungen ausreicht, könntest Du das etwa so lösen:
@echo off & setlocal
set "Sicherungsordner=C:\Dokumente und Einstellungen\User\Desktop\Neuer Ordner (2)"  

for /f "skip=3 delims=" %%i in ('dir /b/ad/o-d "%Sicherungsordner%"') do echo rd /s /q "%Sicherungsordner%\%%i"  
Damit sollten alle bis auf die 3 (siehe Wert für "skip") neuesten Unterordner von "%Sicherungsordner%" gelöscht werden (allerdings erst, wenn Du das zum gefahrlosen Testen gedachte "echo" entfernt hast).

Grüße
bastla