Dateien und Verzeichnisse automatisch loeschen
Alle Dateien und Ordner die länger als X Tage nicht berbeitet wurden, löschen
Hallo an alle,
wir haben ein Austauschlaufwerk (E:\Austausch) für Files. Dieses Laufwerk wuchert, da es nicht gepflegt wird.
Nun möchte ich ein (VB-)Script laufen lassen, welches alle Dateien die länger als 30 Tage nichtmehr geöffnet wurden, löschen.
Notfalls ginge auch älter als 30 Tage, aber optimal wäre länger als 30 Tage nichtmehr geöffnet.
Des Weiteren sollen leere Verzeichnisse ohne Inhalt gelöscht werden, mit der Ausnahme zweier Ordner (Temp1 + Temp2)
Wie geht das? Gibt es hierfür ein VB Script? Notfalls auch mit einem externen Tool, wenn es Windows Server 2003 geeignet ist und als Dienst läuft. Ein Script könnte man halt prima per Taskmanager automatisch ausführen.
Pseudocode sähe doch so oder ähnlich aus:
Wie sieht das ganze dann in VB-Script aus?
Grüße + Danke,
Venator
[Edit Biber] WTF sind " leere Verzeichnisse ohne Inhalt "??[/Edit]
Hallo an alle,
wir haben ein Austauschlaufwerk (E:\Austausch) für Files. Dieses Laufwerk wuchert, da es nicht gepflegt wird.
Nun möchte ich ein (VB-)Script laufen lassen, welches alle Dateien die länger als 30 Tage nichtmehr geöffnet wurden, löschen.
Notfalls ginge auch älter als 30 Tage, aber optimal wäre länger als 30 Tage nichtmehr geöffnet.
Des Weiteren sollen leere Verzeichnisse ohne Inhalt gelöscht werden, mit der Ausnahme zweier Ordner (Temp1 + Temp2)
Wie geht das? Gibt es hierfür ein VB Script? Notfalls auch mit einem externen Tool, wenn es Windows Server 2003 geeignet ist und als Dienst läuft. Ein Script könnte man halt prima per Taskmanager automatisch ausführen.
Pseudocode sähe doch so oder ähnlich aus:
BEGIN
OPEN Verzeichnis "E:\Autausch"
REPETE UNTIL Alle Verzeichnisse inkl. Unterverzeichnisse
IF Windowsattribut "Zuletzt geöffnet am" > 30 Tage DANN löschen
IF Verzeichnis = leer UND UNGLEICH (Verzeichnisname = Temp1 ODER Temp2) DANN lösche Verzeichnis
END
Wie sieht das ganze dann in VB-Script aus?
Grüße + Danke,
Venator
[Edit Biber] WTF sind " leere Verzeichnisse ohne Inhalt "??[/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 90127
Url: https://administrator.de/forum/dateien-und-verzeichnisse-automatisch-loeschen-90127.html
Ausgedruckt am: 06.04.2025 um 06:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo Venator!
Wir hatten hier zwar schon einmal ein ähnliches Script, aber ich hab's gleich noch angepasst:
Die vom Löschen (leerer Verzeichnisse) auszuschließenden Verzeichnisnamen sind in Zeile 3 jeweils durch "§" begrenzt einzutragen, die übrigen Vorgaben in den Zeilen 2 und 4 sollten selbsterklärend sein
.
Da nur oberflächlich getestet, solltest Du das Script vielleicht zuerst nur auf Testdaten loslassen ...
Grüße
bastla
Wir hatten hier zwar schon einmal ein ähnliches Script, aber ich hab's gleich noch angepasst:
'DelOldFilesAndEmptyFoldersWithExclusions.vbs
Const Fld = "E:\Austausch"
Const Excl = "§Temp1§Temp2§"
Old = 30 'Tage
Set fso = CreateObject("Scripting.FileSystemObject")
Limit = Date() - Old
DeleteInFolder(fso.GetFolder(Fld))
Sub DeleteInFolder(Folder)
' Alle Dateien in diesem Ordner abklappern
For Each File In Folder.Files
If File.DateLastAccessed < Limit Then
On Error Resume Next
File.Delete
If Err And Err <> 70 Then MsgBox "Unerwarteter Fehler (Code=" & Err & ")", vbCritical: WScript.Quit
On Error Goto 0
End If
Next
'Unterordner abklappern, DeleteInFolder rekursiv aufrufen
For Each SubFld In Folder.SubFolders
DeleteInFolder(SubFld)
If InStr(1, Excl, "§" & SubFld.Name & "§", vbTextCompare) = 0 Then
If (SubFld.SubFolders.Count + SubFld.Files.Count) = 0 Then SubFld.Delete
End If
Next
End Sub
Da nur oberflächlich getestet, solltest Du das Script vielleicht zuerst nur auf Testdaten loslassen ...
Grüße
bastla