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)??
#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