- Offizieller Beitrag
Hallo,
brauche mal eure Hilfe. Ich muss auf einem Server einmal täglich alte Dateien (älter als 7 Tage) löschen, da die sonst die Platte zu müllen.
Dazu habe ich mir folgendes Skript geschrieben:
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.0.0
Autor: Gun-Food
Datum: 18.02.2009
Skriptfunktion:
Berreinigt das TEMP Verzeichnis
#ce ----------------------------------------------------------------------------
; Skript Start
FileChangeDir("c:\Temp")
$suche = FileFindFirstFile("c:\Temp\*")
While 1
$datei = FileFindNextFile($suche)
$datum = FileGetTime("c:\temp\" & $datei, 1)
$yyyymd = $datum[0] & "/" & $datum[1] & "/" & $datum[2]
if @MDAY >= 8 Then
$tag = @MDAY - 7
$monat = @MON
$jahr = @YEAR
Else
$monat = @MON - 1
if $monat = 0 Then
$monat = 12
EndIf
$jahr = @YEAR
if @MON = 2 Then
$tag = 27 - (8 - @MDAY)
Else
$tag = 30 - (8 - @MDAY)
EndIf
EndIf
$ref_datum = $jahr & "/" & $monat & "/" & $tag
if $yyyymd <= $ref_datum Then
MsgBox(0, "Datei gefunden", "Datei " & $datei & " koennte gelöscht werden")
;FileDelete("c:\Temp" & $datei)
Else
MsgBox(0, "Datei nicht gefunden","Datum aus Datei " & $yyyymd & " zu " & $ref_datum)
EndIf
WEnd
FileClose($suche)
; Skript Ende
Scheinbar findet das Skript auch die richtigen Dateien, bis ich auf einmal die Fehlermeldung:
"AutoIt Error
Line -1:
Error: Subscript used with non-Array variable."
erhalte.
Hat da jemand eine Idee? Ich denke es wird an der Unterscheidung liegen, ob das Jahr gerade erst begonnen hat (vor dem 08.01.), da ich dann ja in das Jahr davor zurück muss und den Monat auf den Dezember setze. Aber sicher bin ich mir nicht und es scheint auch gzu zu laufen, soweit.
Danke
für eure Hilfe
Gun-Food