hallo,
im forum wurde das schon behandelt. habe nun schon mal eine gui drum gebaut. nun stellen sich mir zwei fragen die ich nicht wirklich beantworten kann.
mein ansatz
Spoiler anzeigen
#include <GuiConstants.au3>
#include <string.au3>
#include <Date.au3>
#include <file.au3>
#include <Array.au3>
GuiCreate("Serveraufräumen", 388, 149,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
[/autoit] [autoit][/autoit] [autoit]$Group_1 = GuiCtrlCreateGroup("Löschung", 10, 10, 370, 100)
$Button_2 = GuiCtrlCreateButton("...", 340, 40, 30, 20)
$Button_3 = GuiCtrlCreateButton("Abbruch", 280, 120, 100, 20)
$Button_4 = GuiCtrlCreateButton("Start", 170, 120, 100, 20)
$Input_5 = GuiCtrlCreateInput("", 140, 40, 190, 20)
$Label_6 = GuiCtrlCreateLabel("Inhalt des Ordners", 20, 40, 110, 20)
$Date_7 = GuiCtrlCreateDate("Date7", 140, 70, 230, 20)
$Label_8 = GuiCtrlCreateLabel("Datum", 20, 70, 100, 20)
GuiSetState()
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button_3
ExitLoop
Case $msg = $Button_2
$folder = FileSelectFolder("Choose a folder.", "")
GUICtrlSetData($Input_5,$folder,$folder)
Case $msg = $Button_4
_Start()
;;;
EndSelect
WEnd
Exit
#endregion --- GuiBuilder generated code End ---
;
Func _Start()
$iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)
$dateminustwoweeks = _DateAdd( 'w',-2, _NowCalcDate()) ; jetztiges Datum - 2 Wochen
$dateminustwoweeks = StringReplace($dateminustwoweeks, "/", "") ; macht ne Zahl daraus
;$dir = _FileListToArray($folder, '*.*')
$AllFilesinDir = _FileListToArray($folder & "\", "*.*") ; Files werden in ein Array geschrieben
For $i = 1 To $AllFilesinDir[0] ; Schleife für alle Dateien im Ordner
$filedate = FileGetTime($AllFilesinDir[$i], 0, 0) ; liest das Dateidatum aus
;$filedateformat = $filedate[0]&$filedate[1]&$filedate[2] ; Formatierung
;If $filedateformat > $dateminustwoweeks then $AllFilesinDir[$i] &= "|" ; markieren der Dateien die nicht gelöscht werden sollen
Next
For $i = 1 TO $AllFilesinDir[0]
If StringRight($AllFilesinDir[$i], 1) <> "|" Then FileDelete($folder & "\" & $AllFilesinDir[$i]) ; löschen der Dateien mit dem Datum
Next
_ArrayDisplay($AllFilesinDir,"test")
MsgBox(0,"Anzahl der Daten in "&$folder,$AllFilesinDir[0])
EndFunc
mein fehlermeldung
Spoiler anzeigen
C:\Programme\AutoIt3\Include\neueGUI.au3 (45) : ==> Subscript used with non-Array variable.:
$filedateformat = $filedate[0]&$filedate[1]&$filedate[2]
$filedateformat = $filedate^ ERROR
frage 1
in der ersten for schleife habe ich das filedateformat auskommentiert bis dahin läuft das script dann endet es. wo habe ich eine fehler bzw mache ich was falsch?
das orginal aus dem forum
Spoiler anzeigen
#include <Array.au3>
#include <File.au3>
$dateminustwoweeks = _DateAdd( 'w',-2, _NowCalcDate()) ; jetztiges Datum - 2 Wochen
$dateminustwoweeks = StringReplace($dateminustwoweeks, "/", "") ; macht ne Zahl daraus
$AllFilesinDir = _FileListToArray(@ScriptDir & "\", "*.*") ; Files werden in ein Array geschrieben
For $i = 1 To $AllFilesinDir[0] ; Schleife für alle Dateien im Ordner
$filedate = FileGetTime($AllFilesinDir[$i], 0, 0) ; liest das Dateidatum aus
$filedateformat = $filedate[0]&$filedate[1]&$filedate[2] ; Formatierung
If $filedateformat > $dateminustwoweeks then $AllFilesinDir[$i] &= "|" ; markieren der Dateien die nicht gelöscht werden sollen
Next
For $i = 1 TO $AllFilesinDir[0]
If StringRight($AllFilesinDir[$i], 1) <> "|" Then FileDelete(@ScriptDir & "\" & $AllFilesinDir[$i]) ; löschen der Dateien mit dem Datum
Next
meine zweite frage da in der gui schon ein kalender vorgesehen ist wollte ich fragen ob es möglich ist das datum so zu wählen und dann das zu löschen was länger nicht geändert wurde.
mfg
thomas