Wenn Datei älter als 3 Stunden, dann ...

  • Folgendes:

    Eine Funktion _Backup() soll nur dann aufgerufen werden wenn die neuste datei in U:\Backup\Logfiles nicht älter als 2 Stunden ist.


    [autoit]

    $aFilelist = _FileListToArray("U:\Backup_Nespoli\Logfiles")
    Dim $aFiledate[$aFilelist[0]+1]
    For $i = 1 To $aFilelist[0]
    $aFiledate[$i] = FileGetTime("U:\Backup_Nespoli\Logfiles" & '\' & $aFilelist[$i], 0, 1)
    Next

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, 'Test', 'Die aktuellste Datei ist: ' & $aFilelist[_ArrayMaxIndex($aFiledate, 1)])

    [/autoit]


    Funktioniert bis dahin.. Allerdings fehlt mir die Berechnung .. Habe bereits mit _DateDiff versucht zu arbeiten aber bekomms nicht hin..

    Vielen Dank !

  • FileGetTime liefert leider ein anderes Datumsformat zurück, als DateDiff benötigt. Deshalb muss das Format vorher konvertiert werden. Ich habs mal am Beispiel einer Datei gemacht.

    [autoit]

    #include <Date.au3>
    Local $t = _DateDiffPrepareFormat(FileGetTime(@WindowsDir & "\notepad.exe", 0))
    MsgBox(0, $t, _DateDiff("h", $t, _NowCalc()))

    [/autoit][autoit][/autoit][autoit]

    Func _DateDiffPrepareFormat($a)
    Return $a[0] & "/" & $a[1] & "/" & $a[2] & " " & $a[3] & ":" & $a[4] & ":" & $a[5]
    EndFunc

    [/autoit]
  • Wow! Super, danke...

    Für die mit dem gleichen Problem, so hab ichs gelöst:
    $DirBackupLog ist der Ordner in dem die Logfiles liegen

    [autoit]


    Func _CheckLastBackup()

    [/autoit][autoit][/autoit][autoit]

    $aFilelist = _FileListToArray($DirBackupLog)
    Dim $aFiledate[$aFilelist[0]+1]
    For $i = 1 To $aFilelist[0]
    $aFiledate[$i] = FileGetTime($DirBackupLog & $aFilelist[$i], 0, 1)
    Next
    Global $LastLogfile = $DirBackupLog & $aFilelist[_ArrayMaxIndex($aFiledate, 1)]

    [/autoit][autoit][/autoit][autoit]

    Local $t = _DateDiffPrepareFormat(FileGetTime($LastLogfile, 0))
    if _DateDiff("h", $t, _NowCalc()) < 2 Then ;Backup ist weniger als 2 Stunden her
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _DateDiffPrepareFormat($a)
    Return $a[0] & "/" & $a[1] & "/" & $a[2] & " " & $a[3] & ":" & $a[4] & ":" & $a[5]
    EndFunc

    [/autoit]