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-Key: 239593

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

Printed on: April 24, 2024 at 06:04 o'clock

Member: Xaero1982
Xaero1982 May 30, 2014 at 08:31:13 (UTC)
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ß
Member: bastla
Solution bastla May 30, 2014 updated at 16:35:19 (UTC)
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