Backup-Synchronisations-Tool mit Report

  • Wenn du hast eine externe, interne Festplatte, oder Netzwerk verbindung die ich als Backup-Medium benutzst.
    Um bestimmte Ordner zu sichern, hätten
    Sie gern ein kleines Synchronisations-
    tool, auf das Sie klicken könnte und es würde
    direkt anfangen, zu kopieren.
    Einen Befehl, mit dem direkt Daten
    kopiert werden können (möglichst ohne den hier eigentlich überflüssigen
    Fortschrittsbalken)??

    [autoit]

    #include <Date.au3>
    #include <file.au3>
    Opt("trayicondebug", 1)
    Global $BackupVonDir = "g:\test", $BackupNachDir = "g:\Mybackup"
    $iRekursive=0
    $message = ""
    $backupName=StringLeft(StringReplace(_NowCalc(), "/", ""), 6) & "_BackUpReport.log"
    $backupLog = @ScriptDir & "\" & $backupName
    SplashTextOn("My Backup", "", 800, 600, 100, 200, 4, "")
    _FileWriteLog($backupLog, @CRLF &@CRLF & "Results vom Verzeichnis Kopy Inkrementelle von " & $BackupVonDir & " nach " & $BackupNachDir & "..:" & @CRLF)
    DateiKopyDirInkre($BackupVonDir, $BackupNachDir, $backupLog,$iRekursive)
    Run("Notepad.exe " & $backupLog)
    WinWait($backupName,"")
    If Not WinActive($backupName,"") Then WinActivate($backupName)
    WinWaitActive($backupName,"",5)
    Send("{CTRLDOWN}{END}{CTRLUP}")
    Exit

    Func DateiKopyDirInkre($BackupVonDir, $BackupNachDir, $backupLog,$iRekursive)
    _FileWriteLog($backupLog, @crlf&"Zum Verzeichnis.... " & $BackupNachDir)
    ;FileChangeDir($BackupVonDir)
    $search = FileFindFirstFile($BackupVonDir & "\*.*")
    ; Test ob gefunden
    If $search = -1 Then
    ControlSetText("My Backup", "", "Static1", $message & " Keine Kwelle von Dir/Datei vom Mask " & $BackupVonDir)
    _FileWriteLog($backupLog, "*Fehler Kopiert... " & " Keine Kwelle von Dir/Datei vom Mask " & $BackupVonDir)
    Else
    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    If FileGetAttrib($BackupVonDir & "\" & $file) = "D" Then
    if $iRekursive then DateiKopyDirInkre($BackupVonDir & "\" & $file, $BackupNachDir & "\" & $file, $backupLog,$iRekursive)
    Else
    DateiKopyInkrementelle($BackupVonDir & "\" & $file, $BackupNachDir & "\" & $file, 1, $backupLog)
    EndIf
    WEnd
    ; Handle Zu machen
    FileClose($search)
    EndIf
    EndFunc ;==>DateiKopyDirInkre

    Func DateiKopyInkrementelle($fromfile, $tofile, $NeuKopieren, $backupLog)
    $wFehler = ""
    If Not FileExists($tofile) Then
    If $NeuKopieren Then
    If Not FileCopy($fromfile, $tofile, 9) Then
    _FileWriteLog($backupLog, "*Fehler Kopiert... " & FileGetShortName($fromfile) & "->" & FileGetShortName($tofile))
    $wFehler = " nicht kopiert"
    Else
    _FileWriteLog($backupLog, "+Richtig Kopiert.. " & FileGetShortName($fromfile) & "->" & FileGetShortName($tofile))
    EndIf
    EndIf
    Else
    $fromCrc = FileGetAttrib($fromfile) & FileGetSize($fromfile) & FileGetTime($fromfile)
    $toCrc = FileGetAttrib($tofile) & FileGetSize($tofile) & FileGetTime($tofile)
    If $fromCrc <> $toCrc Then
    If Not FileCopy($fromfile, $tofile, 9) Then
    _FileWriteLog($backupLog, "*Fehler Kopiert.." & FileGetShortName($fromfile) & "->" & FileGetShortName($tofile))
    $wFehler = "<-nicht kopiert"
    Else
    _FileWriteLog($backupLog, "+Richtig Kopiert. " & FileGetShortName($fromfile) & "->" & FileGetShortName($tofile))
    EndIf
    Else
    _FileWriteLog($backupLog, "=Schon Existiert. " & FileGetShortName($fromfile) & "->" & FileGetShortName($tofile))
    EndIf
    EndIf
    $message &= "Kopy " & $fromfile & " nach " & $tofile & $wFehler & @CRLF
    ControlSetText("My Backup", "", "Static1", $message)
    EndFunc ;==>DateiKopyInkrementelle

    [/autoit]