Hi,
da ich momentan dabei bin ein Backupprogramm zu schreiben und eben die Funktion für Fullbackup fertig gestellt habe, dachte ich mir ich stelle diese mal hier rein. Evtl. kann die jemand anders ja auch mal gebrauchen und/oder es hat jemand Verbesserungsvorschläge. Soweit wünsch ich erstmal viel Spaß damit
#include <Date.au3>
;==========================================================================================================================================
; Function: _Full_Backup(ByRef $srcDir, ByRef $destDir, ByRef $sIntervall)
;
; Beschreibung: Macht ein Full-Backup von einen Medium
;
; Parameter(s): $srcDir - Quelle des Mediums wovon ein Backup gemacht werden soll
; $destDir - Ziel wo das Backup gesichert werden soll
; $sIntervallDay - Intervall mit den das Backup arbeitet
;
; Anforderung(en): Keine
;
; Rückgabewert(e): Bei Erfolg - Returns 1
; Bei Fehler - Returns 0
;
; Notizen: Es müssen folgende Variablen wie folgt deklariert werden:
;~ $sDay = @MDAY
;~ $sMonth = @MON
;~ $sTimeOf = @HOUR & ":" & @MIN
;
; Autor(s): AltairKD
;==========================================================================================================================================
Func _Full_Backup(ByRef $srcDir, ByRef $destDir, ByRef $sIntervall)
If @HOUR & ":" & @MIN = $sTimeOf And @MDAY = $sDay And @MON = $sMonth Then
Local $tsBeginn = _NowCalc(), $tsDiff = -1, $tsRest
If StringRight($srcDir, 1) = "\" Then $srcDir = StringLeft($srcDir, StringLen($srcDir) - 1)
If StringRight($destDir, 1) <> "\" Then $destDir = $destDir & "\"
If Not FileExists($destDir) Then DirCreate($destDir)
$srcSize = DirGetSize($srcDir, 1)
$1_percent = $srcSize[0] / 100
Run('XCOPY "' & $srcDir & '" "' & $destDir & '" /D /S /E /V /C /H /R /O /Y /F /G', @ScriptDir, @SW_HIDE)
ProgressOn("Advanced status of file copying", "", "", 10, 10)
Do
If $tsDiff < 0 Then Sleep(5000)
$destSize = DirGetSize($destDir, 1)
$tsDiff = _DateDiff("s", $tsBeginn, _NowCalc())
$tsRest = Round($tsDiff / ($destSize[0] / $1_percent) * 100, 0) - $tsDiff
ConsoleWrite($tsDiff & " " & $1_percent & " " & $tsRest & @CRLF)
ProgressSet(Round($destSize[0] / $1_percent, 2), Round($destSize[0] / (1024 * 1024), 2) & " MB of " & Round($srcSize[0] / (1024 * 1024), 2) & " MB copied" & @CRLF _
& $destSize[1] & " of " & $srcSize[1] & " Files copied." & @CRLF _
& $destSize[2] & " of " & $srcSize[2] & " Folders copied.", Round($destSize[0] / $1_percent, 2) & "% - Done! " & $tsRest & " sec. Rest")
Sleep($tsDiff)
Until $destSize[0] >= $srcSize[0]
MsgBox(0, "Fertig in " & $tsDiff & " sec.", Round($destSize[0] / (1024 * 1024), 2) & " MB of " & Round($srcSize[0] / (1024 * 1024), 2) & " MB copied" & @CRLF _
& $destSize[1] & " of " & $srcSize[1] & " Files copied." & @CRLF _
& $destSize[2] & " of " & $srcSize[2] & " Folders copied." & @CRLF & Round($destSize[0] / $1_percent, 2) & "% - Done! ")
ProgressOff()
If Not @error Then
$sDay += $sIntervall
Else
MsgBox(16, "Error", "Error 001: errors during the copy")
Return 0
Exit
EndIf
Else
Return 0
EndIf
Return 1
EndFunc ;==>_Full_Backup