dondy Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 Guten Tag, ich bin auf der Suche nach einem Skript oder Tool, mit dem ich in der Lage bin Ordner zu löschen die älter als 14 Tage sind. Ein Tool für Dateien (DelAge32) habe ich, aber mir wäre es lieber wenn ich direkt das ganze Verzeichnis mit wegschmeißen kann. Kennt da einer was? Zitieren
Gast Hornochse Geschrieben 16. Januar 2009 Geschrieben 16. Januar 2009 Hallo dondy, dieser Ausschnitt eines vbs-Scripts läuft auf unserem Backup-Server und wird per geplanten Task automatisch ausgeführt. Hier der vbs-Code: Option Explicit Dim intZahl ' Dim strExtension ' Dim intTage ' Dim objDatei ' Dim objFSO ' Dim objOrdner ' Dim strOrdner ' '======================================== 'Sicherungen <Ordnername> werden gelöscht '======================================== Set objFSO = CreateObject("Scripting.FileSystemObject") strOrdner = "<Ordnerpfad>" strExtension = "" intTage = <Anzahl der Tage nachdem der Ordner gelöscht wird> Set objOrdner = objFSO.GetFolder(strOrdner) intZahl = 0 For Each objDatei In objOrdner.Files If LCase(Right(objDatei.name, Len(strExtension))) = LCase(strExtension) _ And DateDiff("d", objDatei.DateLastModified, Now) > intTage Then objDatei.Delete intZahl = intZahl + 1 End If Next 'WScript.Echo intZahl & " Dateien gelöscht." Einfach diesen Text als "blabla.vbs" abspeichern und ausführen. Achtung: <Ordnername>, <Ordnerpfad> und <Anzahl der Tage nachdem der Ordner gelöscht wird> müssen durch die richtigen Werte ersetzt werden. Grüße Alexander Zitieren
Zepho Geschrieben 16. Oktober 2009 Geschrieben 16. Oktober 2009 Hey Hornoche (wie kommt man auf denNamen??), hätte da ne Frage zu deinem Script. Wertet das jedes Datum der eigenen Dateien einzeln aus? Oder schaut es nur das Datum des Ordners und schaut nicht weiter rein, wenn der noch zu neu ist? Wir erstellen hier für jede Sicherung einen Ordner, die zu sichernden Daten behalten aber ihr original-Datum, damit im Falle einer Rücksicherung das ganze wieder paßt. Und ich möchte halt mit dem Script automatisch den ältesten Sicherungsordner rauswerfen, damit Platz für den neuen ist. Bisher hab ich das immer per Hand gemacht, vor jedem Wochenende. Aber sowas kann man ja auch mal vergessen, oder für nen Krankheitsfall oder sowas... CU zepho Zitieren
Fighter91 Geschrieben 5. Mai 2011 Geschrieben 5. Mai 2011 Ich weiß das das Thema schon steinalt ist, aber bin gerade am selben problem! das oben genannte script funktioniert nicht und mim umschreiben hab ich ein paar probleme... Ziel ist es Ordner samt Unterordner...Dateien nach Datum zu löschen! Zitieren
zeitzi Geschrieben 5. Mai 2011 Geschrieben 5. Mai 2011 DateDiff("d", objDatei.DateLastModified, Now) > intTage Then objDatei.Delete damit löscht er die dateien, die 14 tage älter sind (wenn du es denn oben mit 14 tagen angegben hast) Zitieren
Fighter91 Geschrieben 5. Mai 2011 Geschrieben 5. Mai 2011 Dateien löschen ist kein problem und hab ich auch schon gestern erledigt. ich muss jetzt allerdings komplette Ordner löschen die älter als X Tage sind! Zitieren
Fighter91 Geschrieben 5. Mai 2011 Geschrieben 5. Mai 2011 so schaut mein code momentan aus: Option Explicit Dim intZahl Dim strExtension Dim intTage Dim objsubfolder Dim objFSO Dim objOrdner Dim strOrdner Set objFSO = CreateObject("Scripting.FileSystemObject") strOrdner = "C:\Users\SPapenfuss\Documents\" intTage = 14 Set objOrdner = objFSO.GetFolder(strOrdner) intZahl = 0 For Each objsubfolder In objOrdner.SubFolders If DateDiff("d", objsubfolder.DateLastModified, Now) > intTage Then objsubfolder.Delete intZahl = intZahl + 1 End If Next WScript.Echo intZahl & " Ordner gelöscht." Zitieren
mamamia Geschrieben 6. Mai 2011 Geschrieben 6. Mai 2011 Und hier mal wieder ein kleiner Ausritt in die Powershellwelt: $Folder = deinordner $Now = Get-Date $DateDiff = $Now.AddDays(-14) Get-ChildItem $Folder | Where-Object { $_.LastWriteTime -le $DateDiff} | Remove-Item -Recurse Zitieren
Fighter91 Geschrieben 6. Mai 2011 Geschrieben 6. Mai 2011 so wirklich schlau werd ich daraus jetzt nicht, wäre nett wenn du es noch ein bisschen erklären könntest. Aber trotzdem danke für die Antwort =) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.