Dateien mit bestimmten Endungen löschen

  • @Ezzora: Um eine Variable zu überprüfen ob sie deklariert ist musst du IsDeclared nehmen.

    [autoit]

    Global $var1 = "isDeclared"
    Global $var2

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

    If $var1 Then MsgBox(0,"var1","Deklariert")
    If not $var1 Then MsgBox(0,"var1","Nicht Deklariert")

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

    If $var2 Then MsgBox(0,"var2","Deklariert")
    If not $var2 Then MsgBox(0,"var2","Nicht Deklariert")

    [/autoit]


    Bin ich bischen anderer Meinung

  • Hi!


    [autoit]

    Dim $a345[3]

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

    $a345[0] = "D:\nicht löschen\1.345"
    $a345[1] = "D:\nicht2\2.345"
    $a345[2] = "Treffer"

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

    For $i = 0 To 2
    If $a345[$i] <> "D:\nicht löschen\1.345" And $a345[$i] <> "D:\nicht2\2.345" Then MsgBox(1, "", $a345[$i])
    Next

    [/autoit]


    Also eichfach <> ;)

    LG Kleiner

  • @Ezorra, ich habe die Klammer übersehen, die den gesamten Term umschließt.
    Allerdings hast du deinen Post zwischendrin editiert, da hab ich irgendwas übersehen, sry.

    Deine Lösung ist richtig, meine aber auch :).

    Allerdings sind deine Beispiele unten sehr unschlüssig und zum Teil auch falsch.

    [autoit]

    If not $variable

    [/autoit]


    überprüfst du nicht ob eine Variable deklariert ist oder nicht. Du überprüfst ob die Variable false ist.
    Eine Variable die als "False" deklariert ist, ist definitiv deklariert :).
    m-obi hat da Recht!

    Eine Variable die nicht deklariert ist kannst du mit if überhaupt nicht abfragen.

    Einmal editiert, zuletzt von anno2008 (8. Oktober 2010 um 14:39)

  • Naja meine meinung ist das Declariert bei AutoIt falsch "bezeichnet" wird

    $var = 1 (deklariert)

    $var (nicht deklariert)

    Warum sehe ich das so ?

    Ganz einfach, Deklariert bedeutet für mich einen Wert zugeteilt, und das ist eben nicht der fall.
    Dim $array ist für mich zwar Dimensioniert, allerdings LEER und somit nicht deklariert,

    mag sein das es "hochtechnisch bei informatikern" vielleicht falsch ist

    Aber mal ehrlich, Ich hatte nie eine weiterbildende Schule, bin nach meinen 9 Jahren Pflichtschule ( von dennen wir keinen tag bei PC´s verbracht haben) auf den bau gegangen und habe meine Lehre abgeschlossen. 2 Jahre nach abschluss meines Lehrbriefes ( Geselle ) ging ich zur Polizei und von daher find ich eigendlich shcon das auch wenn ich einiges anders sehe als leute die sich damit mehr beschäftigt haben trotzdem nicht unrecht habe^^

    Ich habe aber shcon oft gemerkt das meine gedankengänge gegenüber Fachinformatikern ganz anders sind.

    ich würde also sagen viele wege führn nach Rom,

    Viele Programmieren bzw Scrippten Funktionel, ich programmiere nachvollziehbar mit Logik ^^

  • Nur um dir nochmal genau zu zeigen was was ist ;)

    [autoit]

    Local $var ; Deklaration
    $var = 1 ; Initialisierung (Zuweisung von Wert)
    Dim $arr[4] ; Dimensionierung

    [/autoit]

    Was du also unter Deklaration verstehst ist eigentlich die Initialisierung.
    Wollts nur nochmal sagen um Missverständnisse auszuschließen ;)

    Edit: Schneller :P

    • Offizieller Beitrag

    Da muss ich Dir widersprechen. Das, was Du Deklaration nennst, bezeichnet man als Initialisierung (Variable einen Wert zuweisen).
    Als Deklaration bezeichnet man das Bekanntmachen der Variablen gegenüber dem Compiler/Interpreter. Bei AutoIt kann man das mit Opt("MustDeclareVars", 1) erzwingen (ansonsten Fehlermeldung).

    Edit: Mist, zu langsam...

  • Ok das klinkt logisch ^^

    Definiert Nicht gleich deklariert

    für mich warn das bis jetzt eben 2 gleiche wörter ^^

    Aber egal ihr wusstet doch was ich meine und wenn ich auch falsch erkläre ist es trotzdem richtig ^^ irgendwie ^^

  • Hallöchen
    hoffe ihr hattet ein angenehmes Weekend :)
    Bin noch zurück, was das ursprüngliche Problem betrifft.
    Also, nur indirekt, wollte deswegen aber keinen neuen Thread aufmachen.

    Und zwar möchte ich den Pfad wo eine Date gelöscht wurde, in eine
    Logdatei schreiben.

    Habs erst so probiert:

    Spoiler anzeigen
    [autoit]

    #include "_GetFilesFolder_Rekursiv.au3"
    #include <Filese.au3>
    $a345 = _GetFilesFolder_Rekursiv("D:\", "345", 0)
    For $i = 1 To $a345[0]
    if not StringInStr($a345[$i],"D:\nicht löschen\") then
    _FileWriteLog(@ScriptDir & "\log.txt", $a345[$i] & @CRLF)
    FileDelete($a345[$i])
    EndIf
    Next

    [/autoit]

    Funktioniert nicht.

    Dann so:

    Spoiler anzeigen
    [autoit]

    #include "_GetFilesFolder_Rekursiv.au3"
    #include <Filese.au3>
    $a345 = _GetFilesFolder_Rekursiv("D:\", "345", 0)
    For $i = 1 To $a345[0]
    if not StringInStr($a345[$i],"D:\nicht löschen\") then
    _FileWriteFromArray(@ScriptDir & "\log.txt", $a345]$i])
    FileDelete($a345[$i])
    EndIf
    Next

    [/autoit]


    Funktioniert auch nicht.

    Der Pfad steht aber schon im Array, oder? 8o

    Also, möchte immer nur das in die Logdatei schreiben, was auch gelöscht wurde.

    Einmal editiert, zuletzt von Scritch (11. Oktober 2010 um 11:17)