Advertisement
Guest User

bckpV1Test

a guest
Apr 24th, 2014
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. Option Explicit
  2. '24_04_2014 First Version Backup Script (FSO-Copy) -CK
  3.  
  4. 'Handling:
  5. 'Quellpfad, Zielpfad und Logpfad konfigurieren. Immer Pfad und Dateinamen angeben.
  6. 'Dateiname und Erweiterung des source-files sowie des target-files (Backup) können frei gewählt werden
  7. 'Log-Datei Name ist auch frei, die Erweiterung sollte aber auf .txt enden.
  8.  
  9. 'Für den Erstbetrieb müssen zuvor manuell die Verzeichnisse (Quelle, Ziel und Log) angelegt werden.
  10. 'Außerdem müssen beide Backup-Dateien manuell angelegt werden (txt-Files umbenennen reicht)
  11. '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.
  12.  
  13. 'Das Logfile wird angelegt falls es noch nicht existiert um sicherzustellen, dass eine Log-Ausgabe erfolgen kann.
  14. '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.
  15.  
  16. 'Variables:
  17. Dim sourcePathAndName, targetPathAndName, targetPathAndNameOld, logPathAndName, logAppendix
  18. '##########################################
  19. '########### Configuration here ###########
  20. '##########################################
  21. sourcePathAndName = "C:\Quellpfad\file.test"
  22. targetPathAndName = "C:\Zielpfad\file.test.bak"
  23. targetPathAndNameOld = targetPathAndName & "_old"
  24. logPathAndName = "C:\Log\logfile.txt"
  25.  
  26. 'Objects:
  27. Dim fso, sourceFile, logFile
  28. Set fso = CreateObject("Scripting.FileSystemObject")
  29. Set sourceFile = fso.GetFile(sourcePathAndName)
  30.  
  31. checkLogFile()
  32. doBackup()
  33.  
  34. Public Sub checkLogFile()
  35. if ( fso.FileExists(logPathAndName) ) Then
  36. Set LogFile = fso.OpenTextFile(logPathAndName, 8)
  37. Else
  38. Set LogFile = fso.CreateTextFile(logPathAndName, True)
  39. End If
  40. errorHandler()
  41. End Sub
  42.  
  43. Public Sub doBackup()
  44.  
  45. 'Leerzeile in Log einfügen
  46. logAppendix = ""
  47. appendLogLine()
  48.  
  49. On Error Resume Next
  50. 'Check Environment:
  51. logAppendix = "checking Source-File"
  52. if (fso.FileExists(sourcePathAndName)) Then
  53. logOk()
  54. Else
  55. logEr()
  56. Exit Sub
  57. End if
  58.  
  59.  
  60. logAppendix = "checking Backup-File"
  61. if (fso.FileExists(targetPathAndName)) Then
  62. logOk()
  63. Else
  64. logEr()
  65. Exit Sub
  66. End if
  67.  
  68.  
  69. logAppendix = "checking Backup-File *_old"
  70. if (fso.FileExists(targetPathAndNameOld)) Then
  71. logOk()
  72. Else
  73. logEr()
  74. Exit Sub
  75. End if
  76.  
  77.  
  78. 'Rename Backup File and *_old File
  79. logAppendix = "renaming Backup-Files"
  80. Call fso.MoveFile ( targetPathAndNameOld, targetPathAndNameOld & "_older" )
  81. Call fso.MoveFile ( targetPathAndName, targetPathAndNameOld )
  82. logOk()
  83.  
  84. 'Copy sourceFile
  85. logAppendix = "copying file - Performing actual Backup"
  86. sourceFile.Copy (targetPathAndName)
  87. logOk()
  88.  
  89. 'Delete *_old_older File
  90. logAppendix = "deleting old Backup"
  91. fso.DeleteFile(targetPathAndNameOld & "_older")
  92. logOk()
  93.  
  94. 'Close LogFile and delete Objects
  95. logAppendix = "########### Backup-Job done ############"
  96. appendLogLine()
  97. LogFile.Close
  98. Set fso = Nothing
  99. Set sourceFile = Nothing
  100. End Sub
  101.  
  102. Public Sub appendLogLine()
  103. LogFile.WriteLine(logAppendix)
  104. End Sub
  105.  
  106. Public Sub logOk()
  107. errorHandler()
  108. logAppendix = "OK - " & logAppendix
  109. appendLogLine()
  110. End Sub
  111.  
  112. Public Sub logEr()
  113. logAppendix = "ER - " & logAppendix
  114. appendLogLine()
  115. logAppendix = "ERROR###########ERROR"
  116. appendLogLine()
  117. WScript.Quit
  118. End Sub
  119.  
  120. Public Sub errorHandler()
  121. If Err.Number <> 0 Then
  122. Err.Clear()
  123. logEr()
  124. End If
  125. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement