Skip to content

Instantly share code, notes, and snippets.

@Clijsters
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Clijsters/4f83fd0cf231d5843f3c to your computer and use it in GitHub Desktop.
Save Clijsters/4f83fd0cf231d5843f3c to your computer and use it in GitHub Desktop.
Move old backups to archive folder. delete oldest backups from archive folder.
Option Explicit
'-- Deklarationen --'
Dim Wshshell 'ScriptHostShell
Dim FSO 'FileSystemObject
Dim Backupordner 'Aktuelle Sicherungen
Dim Archivordner 'Alte Sicherungen
Dim MaxAlter 'In Tagen
Dim MaxAlterArchiv 'In Tagen
Dim MaxAlterD 'Als Datum
Dim MaxAlterArchivD 'Als Datum
Dim Dateien 'Array
Dim Archivdateien 'Array
Dim Vorlage 'Lese aus HTML-Vorlage
Dim ObjMSG 'CDO Messageobject
Dim errcount 'Fehlerzähler
Dim Datei 'Von Array
Dim CountAnalyse 'Dateizähler
'-- Definitionen --'
Backupordner = "C:\BACKUPS"
Archivordner = "C:\backups\Alte_Backups\"
MaxAlter = 2
MaxAlterArchiv = 15
htmlPattern = "C:\users\clisters\myMail.html"
'========================================================
errcount = 0
movecount = 0
delcount = 0
analysecount = 0
MaxAlterD = FormatDateTime( now() - MaxAlter ,2)
MaxAlterArchivD = FormatDateTime( now() - MaxAlterArchiv ,2)
Set Wshshell = CreateObject("wscript.shell")
Set FSO = Createobject("Scripting.FileSystemObject")
Set Dateien = FSO.GetFolder(Backupordner).Files
Set Archivdateien = FSO.GetFolder(Archivordner).Files
Set objMsg = CreateObject("CDO.Message")
Vorlage = FSO.OpenTextFile(htmlPattern).ReadAll
Vorlage = replace(vorlage, "_#Computer#_", "WXP-Clijsters")
Vorlage = replace(vorlage, "_#datum#_", FormatDateTime(now(), 1))
Vorlage = replace(vorlage, "_#BUPFAD#_", Backupordner)
Vorlage = replace(vorlage, "_#beginn#_", FormatDateTime(now(), 4))
'=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_='=_='
Load() '=_='
Main() '=_='
Ende() '=_='
Wscript.quit '=_='
'=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_='=_='
Sub Load()
if not FSO.FolderExists(Backupordner) then
call Protokoll(1,"Backupordner nicht gefunden. Anwendung wird beendet.")
Ende()
ElseIf not FSO.FolderExists(Archivordner) then
call Protokoll(1,"Archivordner nicht gefunden. Anwendung wird beendet.")
Ende()
End If
End Sub
Sub Main()
On Error Resume Next
For Each Datei in Archivdateien
countanalyse = countanalyse + 1
wscript.echo "Überprüfe " & Datei.Name & vbcrlf
If Err.Number <> 0 Then
call Protokoll(1, "Fehler! Nummer: " & err.number & " Beschr.: " & Err.Description)
Err.Clear
End If
if DateDiff("d", Datei.DateLastModified, MaxAlterArchivD) > 0 then
'#####LOESCHE######
wscript.echo "Positiv: " & Datei.Name
FSO.deletefile(Datei.path)
If Err.Number <> 0 Then
call Protokoll(1, "Fehler! Nummer: " & err.number & " Beschr.: " & Err.Description)
Err.Clear
Else
delcount = delcount + 1
End If
End If
Next
Set Datei = Nothing
For Each Datei in Dateien
countanalyse = countanalyse + 1
wscript.echo "Überprüfe " & Datei.Name & vbcrlf
If Err.Number <> 0 Then
call Protokoll(1,"Fehler! Nummer: " & err.number & " Beschr.: " & Err.Description)
Err.Clear
End If
if DateDiff("d", Datei.DateLastModified, MaxAlterD) > 0 then
'##Verschiebe###
wscript.echo "Positiv: " & Datei.Name
FSO.MoveFile Datei.path, Archivordner
If Err.Number <> 0 Then
call Protokoll(1,"Fehler! Nummer: " & err.number & " Beschr.: " & Err.Description)
Err.Clear
Else
movecount = movecount + 1
End If
End If
Next
Set Datei = Nothing
If Err.Number <> 0 Then
call Protokoll(1,"Letzter Fehler: Nummer: " & err.number & " Beschr.: " & Err.Description)
Else
call Protokoll(0,"Kein Fehler festgestellt.")
End If
End Sub
Sub Ende()
Vorlage = replace(Vorlage, "_#analysecount#_", countanalyse)
Vorlage = replace(Vorlage, "_#movecount#_", movecount)
Vorlage = replace(Vorlage, "_#delcount#_", delcount)
Vorlage = replace(Vorlage, "_#protpfad#_", "MailSender()")
Vorlage = replace(Vorlage, "_#errcount#_", errcount)
objmsg.configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtperver") = "127.0.0.1"
objmsg.HTMLbody = vorlage
objmsg.From = "TEST@dominiqueclijsters.de"
objmsg.To = "mail@host.com"
objmsg.Send
wscript.echo "ENDE"
wscript.quit
End Sub
Sub Protokoll(typ, Text)
Wscript.Echo "Status: " & Text & vbcrlf
fso.createtextfile("C:\text.text").writeline "Err"
if typ <> 0 Then errcount = errcount + 1
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment