Benutzer mit den meisten Antworten
Dateien nach Alter löschen

Frage
-
Hallo zusammen,
wir haben seit kurzem auf unserem Fileserver (2012 R2) ein Datenaustausch-Verzeichnis zum temporären, bereichsübergreifenden Datenaustausch. Dateien die sich darauf befinden, sollen nach 7 Tagen gelöscht werden. Dafür habe ich eine Batch-Datei entworfen und in den Aufgaben-Planer gepackt. Soweit funktioniert das auch, allerdings gibt es ein Problem in der Unterscheidung zwischen Erstelldatum und Änderungsdatum. Mit meiner Batch-Datei guckt er ausschließlich nach dem Änderungsdatum. Das wird spätestens dann ein Problem, wenn jemand eine ältere Datei reinlegt, das heißt eine Datei, die er vor sagen wir 3 Monaten das letzte Mal bearbeitet hat und jetzt weitergeben möchte. Legt er diese Datei ins Datenaustausch-Verzeichnis, bekommt sie zwar das aktuelle Erstelldatum, allerdings ein zu altes Änderungsdatum. Dementsprechend wird diese Datei gelöscht, sobald der Task das nächste Mal durchläuft. Ziel soll es sein, dass sowohl nach Änderungsdatum, als auch nach Erstelldatum geschaut wird und erst gelöscht wird, wenn beides älter 7 Tage ist.
Batch:
mkdir E:\Datenaustausch_to_delete
robocopy.exe E:\Datenaustausch E:\Datenaustausch_to_delete /E /MOVE /MINAGE:8 /R:1 /W:1
del E:\Datenaustausch_to_delete\*.* /s /qDanke im Voraus.
- Bearbeitet LNAG Dienstag, 29. Juli 2014 10:05 Grammatik
Antworten
Alle Antworten
-
> Kenn für solche Aufgaben kleines Tool "DelAge32". Habe damit gute> Erfahrungen gemacht:http://www.horstmuc.de/wbat32d.htm...und wer Third Party Produkte scheut, der verwendet "forfiles /?"...
Martin
Mal ein GUTES Buch über GPOs lesen?
NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
And if IT bothers me - coke bottle design refreshment :)) -
Grmpf - man sollte zweimal schauen :-) Ok, hab nix gesagt - auchforfiles geht (wie robocopy) auf das Änderungsdatum, nicht auf dasErstellungsdatum...
Martin
Mal ein GUTES Buch über GPOs lesen?
NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
And if IT bothers me - coke bottle design refreshment :)) -
Mach es mit VBS:
' Zeitdifferenz in Tagen dim iDays iDays = 7 ' Pfad des Ordners in dem die Dateien liegen dim sPath sPath = "C:\Ordner" Dim fso, f, f1, fc Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(sPath) Set fc = f.Files For Each f1 in fc If DateDiff("d", f1.DateLastModified, Now) > iDays AND DateDiff("d", f1.DateCreated, Now) > iDays Then f1.Delete End If Next Set fso = Nothing Set f = Nothing Set fc = Nothing
Gruß,
Matthias
- Bearbeitet Matthias S. _ Mittwoch, 30. Juli 2014 14:36