Dateien löschen

  • Hallo

    Ich habe einen Ordner auf einem Netzlaufwerk. In diesem Ordner sind Backups. Ich möchte nun jede Woche bevor automatisch ein Backup erstellt wird, mit einem AutoIt oder Batch Skript die ältesten Dateien löschen, so dass nur 3 Dateien vorhanden sind. Also idealerweise soll jede Woche das älteste Backup gelöscht werden, so dass noch 3 Backups vorhanden sind. Falls aber einmal kein Backup erstellt wird, soll nichts gelöscht werden oder wenn innerhalb einer Woche mehrere Backups erstellt werden, sollen einfach so viele gelöscht werden, so dass noch 3 Backups vorhanden sind.

    Wie geht das?

    Einmal editiert, zuletzt von Helveticus (29. Mai 2010 um 15:56)

  • wenn ich das jetz richig verstanden habe müsstest du die anzahl der backupdatein auslesen
    das kannst du mit

    [autoit]

    _FileListToArray

    [/autoit]


    machen
    und dann muste die jeweilige anzahl löschen also mit

    [autoit]

    FileDelete

    [/autoit]

    welche endungen haben den die backupdatein?

  • Ich habs mal probiert. Habe noch zwei Fragen.

    Erste Frage. Bei

    [autoit]

    $FileList = _FileListToArray("\\xx")

    [/autoit]

    greife ich auf einen Netzwerkspeicher zu und da muss man ein Benutzernamen und Passwort eingeben. Wie kann ich das oben einflechten?


    Zweite Frage. Ich habe bisher folgendes

    [autoit]

    #Include <File.au3>

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

    $FileList = _FileListToArray("\\xx")

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

    $FileNumber = $FileList[0]
    $Date[$FileList[0]]

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

    If $FileNumber > 3 Then
    For $i = $FileNumber to 1 Step -1
    $Date[$i] = FileGetTime($FileList[$i], 1, 1)
    Next

    [/autoit]

    Aber jetzt hänge ich. Würde sicher auch noch einfacher gehen.

    Ich weiss nicht mehr weiter.

  • So müsste es hinhauen ^^

    Musste halt nur Freigabe, Authentifizierung und Dateityp ändern

    Spoiler anzeigen
    [autoit]

    $sDir = "X:"

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

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

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

    DriveMapAdd ($sDir , "\\freigabe\usw" ,0,"user","password")
    Local $aFiles = _FileListToArray("X:","*.txt",1)
    If Ubound($aFiles) = 0 Then
    DriveMapDel("X:")
    Exit
    EndIf
    _ArrayDelete($aFiles,0)
    Local $aFileDate[Ubound($aFiles)]
    If Ubound($aFiles) > 3 Then
    Local $aFileAndDate[Ubound($aFiles)][2]
    For $i = 0 to Ubound($aFiles)-1
    $aFileAndDate[$i][0] = $sDir & "\" & $aFiles[$i]
    $aFileAndDate[$i][1] = FileGetTime($sDir & "\" & $aFiles[$i], 1, 1)
    Next
    _ArraySort($aFileAndDate,0,0,0,1)
    For $i = 0 To UBound($aFiles)-4
    FileDelete($aFileAndDate[$i][0])
    Next
    EndIf
    DriveMapDel($sDir)

    [/autoit]

    21 is only half the truth.