Wer kennt das nicht? Dateien, die ein bestimmtes Alter überschritten haben, sollen automatisch gelöscht werden. Im aktuellen Fall ging es um automatisch generierte Backupdateien einer Datenbankanwendung. Die Anforderung besagte, dass diese für 14 Tage aufbewahrt werden sollen. Mit Hilfe eines VB-Skripts lässt sich die Anforderung lösen.
Das folgende Skript löscht alle Dateien in einem bestimmten Ordner, die älter sind als eine einstellbare Zahl von Tagen. Dabei lässt sich die Auswahl der Dateien auf eine bestimmte Dateiendung einschränken.
Folgende Anpassungen sind vorzunehmen:
- strOrdner: enthält den zu durchsuchenden Ordner
- strExtension: enthält die Dateinamenserweiterung; "" findet einfach alle Dateien
- intTage: Anzahl der Tage, die die Dateien mindestens alt sein müssen, damit das Skript sie löscht
Achtung, das Skript löscht ohne Rückfrage endgültig!
-
Option Explicit
-
Dim intZahl '
-
Dim strExtension '
-
Dim intTage '
-
Dim objDatei '
-
Dim objFSO '
-
Dim objOrdner '
-
Dim strOrdner '
-
-
Set objFSO = CreateObject("Scripting.FileSystemObject")
-
strOrdner = "D:\Temp\Dateien"
-
strExtension = "bak"
-
intTage = 30
-
-
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."
http://faq-o-matic.net/?p=630