Sicherung mit mehreren Ständen
Dieses Skript kopiert bestimmte Dateien/ordner in einen Sicherungsordner und hält hier mehrere Stände vor. Die Backup-Ordner werden nach Datum benannt und es wird überprüft, ob ein bestimmter Ordner schon das maximale alter erreicht hat und wird dann ggf. gelöscht. Die Maximale Anzahl der Stände kann frei definiert werden und wird über das DateLastModified überprüft!
'--------- Ralf Entner / MR Datentechnik
'--------- Oktober 2007
'Skript zum Sichern von Dateien in einen Ordner
'Immer einen neuen Ordner erstellen und max. x Stände dieses Ordners vorhalten
'Das Skript erzeugt einen Ordner mit dem Namen des Datums
'Danach können beliebige Dateien in den Ordner kopiert werden
'Am Schluß wird geprüft, wieviele Stände dieses Ordners bereits vorleigen
'Es werden die Maximale Anzahl an Ordner vorgehalten, die unter MaxFolder angegeben 'sind 'alle anderen werden gelöscht
'Variablen-Erklärung
'MaxFolder = Anzahl der Speicherstände, die vorgehalten werden sollen
'sFolder = Sicherungsornder, in denen die Speicherstände vorgehalten werden
'bFolder = täglicher Backup-Ordner, in dem die entsprechenden Dateien kopiert werden
'--------------
'Variablen deklarieren
Option Explicit
on error resume next
Dim wshshell, fso, MaxFolder, sFolder, bFolder, ordner, unterordner
'--------------
'Objekte generieren
set wshshell = CreateObject("Wscript.Shell")
set fso = CreateObject("Scripting.FileSystemObject")
'--------------
'Variablen festlegen
MaxFolder = 5
sFolder = "E:\test\"
bFolder = sFolder & date & "\"
'--------------
'Backup-Verzeichnis bFolder in Sicherungs-Ordner sFolder erstellen
fso.createfolder(bFolder)
'--------------
'Dateien Kopieren
'Es können Wildcards verwendet werden!
'Datei kopieren : Syntax copyfile QUELLE, ZIEL, Überschreiben true|false
'Ordner kopieren: Syntax copyfolder QUELLE, ZIEL, Überschreiben true|false
fso.copyfile "C:\cbdata\AutoSave.cba", bFolder, true
'--------------
'Überprüfen, ob alte Stände gleöscht werden können
'Überprüft ob DateLastModified kleiner ist als heute minus MaxFolder-Tagen
'Wenn diese Differenz kleiner ist, dann wird dieser gelöscht
set ordner = fso.getfolder(sfolder)
for each unterordner in ordner.subfolders
If unterordner.DateLastModified < (now - maxfolder) Then
fso.deletefolder unterordner
end if
next
'--------------