Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- '24_04_2014 First Version Backup Script (FSO-Copy) -CK
- 'Handling:
- 'Quellpfad, Zielpfad und Logpfad konfigurieren. Immer Pfad und Dateinamen angeben.
- 'Dateiname und Erweiterung des source-files sowie des target-files (Backup) können frei gewählt werden
- 'Log-Datei Name ist auch frei, die Erweiterung sollte aber auf .txt enden.
- 'Für den Erstbetrieb müssen zuvor manuell die Verzeichnisse (Quelle, Ziel und Log) angelegt werden.
- 'Außerdem müssen beide Backup-Dateien manuell angelegt werden (txt-Files umbenennen reicht)
- 'Hier habe ich keine spezielle Routine für den ersten Lauf angelegt um bei Beschädigungen des Backups klar auf Fehler hinweisen zu können.
- 'Das Logfile wird angelegt falls es noch nicht existiert um sicherzustellen, dass eine Log-Ausgabe erfolgen kann.
- 'Ich wuerde empfehlen es in einen Ordner zu schreiben der in jedem Fall existiert, z.B. den Benutzer-Ordner, da bei nicht-Existenz des Log-Speicher-Pfades kein Logging erfolgt.
- 'Variables:
- Dim sourcePathAndName, targetPathAndName, targetPathAndNameOld, logPathAndName, logAppendix
- '##########################################
- '########### Configuration here ###########
- '##########################################
- sourcePathAndName = "C:\Quellpfad\file.test"
- targetPathAndName = "C:\Zielpfad\file.test.bak"
- targetPathAndNameOld = targetPathAndName & "_old"
- logPathAndName = "C:\Log\logfile.txt"
- 'Objects:
- Dim fso, sourceFile, logFile
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set sourceFile = fso.GetFile(sourcePathAndName)
- checkLogFile()
- doBackup()
- Public Sub checkLogFile()
- if ( fso.FileExists(logPathAndName) ) Then
- Set LogFile = fso.OpenTextFile(logPathAndName, 8)
- Else
- Set LogFile = fso.CreateTextFile(logPathAndName, True)
- End If
- errorHandler()
- End Sub
- Public Sub doBackup()
- 'Leerzeile in Log einfügen
- logAppendix = ""
- appendLogLine()
- On Error Resume Next
- 'Check Environment:
- logAppendix = "checking Source-File"
- if (fso.FileExists(sourcePathAndName)) Then
- logOk()
- Else
- logEr()
- Exit Sub
- End if
- logAppendix = "checking Backup-File"
- if (fso.FileExists(targetPathAndName)) Then
- logOk()
- Else
- logEr()
- Exit Sub
- End if
- logAppendix = "checking Backup-File *_old"
- if (fso.FileExists(targetPathAndNameOld)) Then
- logOk()
- Else
- logEr()
- Exit Sub
- End if
- 'Rename Backup File and *_old File
- logAppendix = "renaming Backup-Files"
- Call fso.MoveFile ( targetPathAndNameOld, targetPathAndNameOld & "_older" )
- Call fso.MoveFile ( targetPathAndName, targetPathAndNameOld )
- logOk()
- 'Copy sourceFile
- logAppendix = "copying file - Performing actual Backup"
- sourceFile.Copy (targetPathAndName)
- logOk()
- 'Delete *_old_older File
- logAppendix = "deleting old Backup"
- fso.DeleteFile(targetPathAndNameOld & "_older")
- logOk()
- 'Close LogFile and delete Objects
- logAppendix = "########### Backup-Job done ############"
- appendLogLine()
- LogFile.Close
- Set fso = Nothing
- Set sourceFile = Nothing
- End Sub
- Public Sub appendLogLine()
- LogFile.WriteLine(logAppendix)
- End Sub
- Public Sub logOk()
- errorHandler()
- logAppendix = "OK - " & logAppendix
- appendLogLine()
- End Sub
- Public Sub logEr()
- logAppendix = "ER - " & logAppendix
- appendLogLine()
- logAppendix = "ERROR###########ERROR"
- appendLogLine()
- WScript.Quit
- End Sub
- Public Sub errorHandler()
- If Err.Number <> 0 Then
- Err.Clear()
- logEr()
- End If
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement