Backup löschen von älteren Ordnern

  • Hallo Zusammen,

    ich arbeite gerade an einem Script welches von 2 Ordnern ein Backup macht und dies abspeichert.
    Darin ist aber eine Abfrage enthalten die nach 5 Ordnern die älteste löschen soll.
    Leider funktioniert dies nicht und das Script erstellt immer weiter neue Dateien

    Ich hoffe mir kann jemand helfen.

    Danke im Voraus

    Steel4ever


    Ist gelöst vielen dank an protex für die Lösung


    [autoit]

    #Include <File.au3>
    #Include <Array.au3>

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

    $foldersource="\\xxxxxxxxxxxxxxx\"
    $folderdestination ="C:\Backup\\"
    $Folder2Copy = "XXXX"

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

    $DirList=_FileListToArray($folderdestination)
    $date = @YEAR & @MON & @MDAY & @HOUR & @MIN & @MSEC

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

    $SplashMessage = " Backup" & @CRLF & $date & @CRLF & "gesichert!" ;Splashmessage
    $Splashtime = (3000) ;3 Sekunden

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

    If @Error=1 Then
    MsgBox (0,"","Keine Dateien/Ordner gefunden. ")
    Exit
    EndIf
    If @Error=4 Then
    DirCopy($foldersource,$folderdestination & $date , 1)
    ;MsgBox (0,"","No Files Found.")
    _Splash($SplashMessage, $Splashtime)
    Exit
    EndIf

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

    ;_ArrayDisplay($FileList, "$FileList")

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

    ;if $DirList[0] > 5 Then
    DirCopy($foldersource,$folderdestination & $date , 1)
    _Splash($SplashMessage, $Splashtime)
    ;Else
    DirRemove($folderdestination & $DirList[1])
    DirCopy($foldersource,$folderdestination & $date , 1)
    _Splash($SplashMessage, $Splashtime)
    ;EndIf

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

    Func _Splash($SplashMessage, $Splashtime)
    SplashTextOn ( "Hinweis:", $SplashMessage , 250 , 100 , @DesktopWidth-250 , @DesktopHeight-102 , 33 , "", 10)
    Sleep($Splashtime)
    SplashOff()
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von steel4ever (7. März 2012 um 09:51)

  • Fehler im Destination Path du hast einen "\\" muss aber $dest = "C:\Backup\" sein gruß Marvin

  • Hi Danke für die schnelle Antwort,

    aber leider ändert es nichts daran.

    Das Script löscht keine "alten" Backup Ordner obwohl schon mehr als 5 drin sind.

    :(

  • Spoiler anzeigen
    [autoit]


    #Include <File.au3>
    #Include <Array.au3>

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

    $foldersource="\\xxxxxxxxxxxxxxx\"
    $folderdestination ="C:\Backup\"
    $Folder2Copy = "XXXX"

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

    $DirList=_FileListToArray($folderdestination)
    $date = @YEAR & @MON & @MDAY & @HOUR & @MIN & @MSEC

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

    $SplashMessage = " Backup" & @CRLF & $date & @CRLF & "gesichert!" ;Splashmessage
    $Splashtime = (3000) ;3 Sekunden

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

    If @Error=1 Then
    MsgBox (0,"","Keine Dateien/Ordner gefunden. ")
    Exit
    EndIf
    If @Error=4 Then
    $Copy = DirCopy($foldersource,$folderdestination & $date , 1)
    If $Copy = 0 Then MsgBox(64,"Kopiervorgang fehlgeschlagen","")
    ;MsgBox (0,"","No Files Found.")
    _Splash($SplashMessage, $Splashtime)
    Exit
    EndIf

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

    ;_ArrayDisplay($FileList, "$FileList")

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

    ;if $DirList[0] > 5 Then
    $Copy = DirCopy($foldersource,$folderdestination & $date , 1)
    If $Copy = 0 Then MsgBox(64,"Kopiervorgang fehlgeschlagen","")
    _Splash($SplashMessage, $Splashtime)
    ;Else
    MsgBox(64,"Pfad angabe Richtig????",$folderdestination&$DirList[1])
    $Remove = DirRemove($folderdestination & $DirList[1])
    If $Remove = 0 Then MsgBox(64,"Fehler beim löschen des Ordners aufgetreten","")
    $copy = DirCopy($foldersource,$folderdestination & $date , 1)
    If $Copy = 0 Then MsgBox(64,"Kopiervorgang fehlgeschlagen","")
    _Splash($SplashMessage, $Splashtime)
    ;EndIf

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

    Func _Splash($SplashMessage, $Splashtime)
    SplashTextOn ( "Hinweis:", $SplashMessage , 250 , 100 , @DesktopWidth-250 , @DesktopHeight-102 , 33 , "", 10)
    Sleep($Splashtime)
    SplashOff()
    EndFunc

    [/autoit]

    was kommt denn?

  • Hi, Daten auf C: sichern ist keine gute Idee. ;)

    [autoit]


    Global $src = "C:\Quelle" ;<============== ### hier deine Quelle angeben ###
    Global $dest = "C:\$Backup$" ;<============== ### hier dein Hauptbackupordner ###

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

    $dest &= "\DeineDateien_" & @WDAY ;<============== ### hier dein Ausgabeordner im Hauptbackupordner mit TagesZahl, OrdnerNamen eventuell anpassen ###
    If FileExists($dest) Then FileDelete($dest)
    DirCopy($src, $dest, 1)
    Exit

    [/autoit]
  • danke für die Antwort RR04 aber dein Script würde nicht funktionieren.

    Mit jedem mal wenn ich mein Script ausführe wird ein Ordner erstellt mit dem aktuellen Datum und Uhrzeit z.B. 201203070846619
    In denen jeweils die Backup dateien liegen.
    So nach 5 maligen ausführen habe ich also 5 Ordner mit unterschiedlichen Namen. Beim 6 mal sollte er den ältesten Ordner löschen und dann erst ein neuen erstellen.

    Leider löscht er nie den ältesten Ordner sondern erstellt immer weiter ohne zu löschen.

    Ich hoffe das es dazu eine möglich keit gibt, ich finde leider bis jetzt nichts :(

  • Hast du überhaupt mein Script dir mal angeschaut? ....
    naja habe dir eine Lösung gepostet ob du was damit anfängst oder nicht bleibt dir überlassen, mein Script sagt dir genau wo der Fehler liegt somit kannst du es eingrenzen wenn du es nicht verwenden willst lass es bleiben, bin raus aus dem Thread