Skript zum Automatischen löschen von Ordnern ab einem gewissen alter.

  • Servus!

    Vorneweg, ich bin ein AutoIt Neuling :rolleyes:

    Zu meinem Vorhaben:

    Ich zeiche über einen Videoserver (Kameraüberwachung) *.jpg Bilder auf. Der Videoserver erstellt über FTP für jeden Tag einen Ordner und füllt diesen mit den Bildern.

    Nun würde ich gerne mittels AutoIt automatisch die Ordner löschen die älter als 2 Monate sind (so grob, kommt nicht auf nen Tag hin oder her an ).

    Hab auch schon angefangen, weis nur nicht ob ich soweit richtig liege, wäre super wenn ihr mal drüber schauen könnt was ich da so gemacht hab :)

    [autoit]

    #include <Date.au3>
    #include <Array.au3>
    #include <File.au3>

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

    $Odnerliste = _FileListToArray("C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\CAM\","*.*")

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

    if Not IsArray($Odnerliste) then exit MsgBox(16,"","Nichts gefunden..Exit")

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

    for $i = 1 to $Odnerliste[0]
    $DateArray = FileGetTime($Odnerliste,1,0)
    if $DateArray[0] <> @YEAR Then FileDelete("C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\CAM\",$Odnerliste[$i]
    Else ($DateArray[1]+2) < @MON Then FileDelete("C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\CAM\",$Odnerliste[$i]
    EndIf
    Next

    [/autoit]

    danke!

    gruß

    Coach

    Einmal editiert, zuletzt von Coach (28. April 2008 um 18:59)

  • Hab dir mal deine Fehler ausgebügelt.

    Schaus dir mal an

    Spoiler anzeigen
    [autoit]

    #include<File.au3>
    #include<Array.au3>

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

    $pfad = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\CAM\"
    $Odnerliste = _FileListToArray($pfad, "*.jpg")
    ;~ _ArrayDisplay($Odnerliste)

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

    If Not IsArray($Odnerliste) Then
    MsgBox(16, "", "Nichts gefunden..Exit")
    Exit
    EndIf

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

    For $i = 1 To $Odnerliste[0]
    $DateArray = FileGetTime($pfad & $Odnerliste[$i], 1, 0)
    $datum_bild = $DateArray[0] & $DateArray[1] & $DateArray[2]
    $datum_heute = @YEAR & @MON & @MDAY
    If ($datum_bild+200) < $datum_heute Then
    FileDelete($pfad & $Odnerliste[$i])
    EndIf
    Next

    [/autoit]
    • Offizieller Beitrag

    Oder mit _DateDiff(), wie Xeno vorgeschlagen hat:

    Spoiler anzeigen
    [autoit]


    #include <Date.au3>
    #include <Array.au3>
    #include <File.au3>

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

    $path = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\CAM\"
    $Ordnerliste = _FileListToArray($path, "*.*")

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

    If Not IsArray($Ordnerliste) Then Exit MsgBox(16,"","Nichts gefunden..Exit")

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

    For $i = 1 To $Ordnerliste[0]
    $aDate = FileGetTime($path & $Ordnerliste[$i],1,0)
    $Date = $aDate[0] & '/' & $aDate[1] & '/' & $aDate[2] & ' ' & $aDate[3] & ':' & $aDate[4] & ':' & $aDate[5]
    if _DateDiff('m', $Date, _NowCalc()) > 2 Then DirRemove($path & $Ordnerliste[$i])
    Next

    [/autoit]
  • Wow!!

    Danke euch! Ihr seid ja auf zack!

    Vielen Dank! :)

    AutoIt gefällt mir bis jetzt echt gut! Bin mal gespannt was mir noch so alles einfällt was man damit noch machen könnt.

    gruss

    Coach