gelöst - Rekursive Suche nach Dateien, dabei explizit mehrere (Unter)Verzeichnisse aus dem Suchpfad ausklammern

  • Guten Morgen zusammen,

    nachdem ich mich irgendwie im Kreis drehe, wende ich mich hier ans Forum mit meiner Frage/Problem.
    Eigentlich ist alles in der Titelzeile schon beschrieben.

    Ich muss über ca. 20 Server täglich einen Dir *.cdeTmp /s/b beginnend ab einem Einstiegspunkt (z.B. d:\logs) laufen lassen.
    Soweit ganz einfach (entweder per Batch od. mit rekursiver AutoIt Suche).

    Aber ich möchte/muss (um nicht im Nachgang Aufräumarbeiten durchführen zu müssen), definierte Verzeichnisse innerhalb des 'Suchpfades' ausschliessen.

    Z.B.

    d:\logs: dir *.cdeTmp /S/b

    d:\logs\Vz1
    d:\logs\vz1\vz11
    d:\logs\vz1\vz12
    d:\logs\vz1\vz123

    auszuschliessen ist dabei d:\logs\vz1\vz12

    Eine Idee wäre jetzt im ersten Schritt eine Directory List zu erzeugen - diese nach den auszuklammernden Verzeichnisse überprüfen / ggf. löschen und diese DirList dann sequentiell abzuarbeiten .
    Das ist aber ziemlich aufwendig .... vllt. gibt es ja was Eleganteres bzw. Schlaueres ...


    Danke schon einmal im voraus

    Gruss
    ugt100

  • nutz doch um alle Dateien aufzulisten.
    _FileListToArrayRec ( $sFilePath [, $sMask = "*" [, $iReturn = $FLTAR_FILESFOLDERS [, $iRecur = $FLTAR_NORECUR [, $iSort = $FLTAR_NOSORT [, $iReturnPath = $FLTAR_RELPATH]]]]]
    Dann mit

    AutoIt
    local $searchPath="searchpath"
    local $ignorePath=["pfad1","pfad2"]
    $files=_FileListToArrayRec($searchPath,"*",1,1,0,2) 
    for $i=0 to ubound($ignorePath)-1 step 1
    	for $j=0 to ubound($files)-1 step 1
    		if stringinstr($files[$j],$i)<>1 then
    			;was auch immer passieren soll :)
    		endif
    	next
    next

    Bei _FileListToArrayRec kannst du bei $sMask auch alle Ordner eintragen, die er nicht auflisten soll.
    Ich hoffe, das hilft dir weiter.

    MfG Kanashius

  • Hi Kanashius,

    Danke der Tip erscheint mir sehr gut. So etwas in der Art habe ich gesucht aber - leider - nicht gefunden.
    Werde es testen umnd Feedback geben

    Merci

    :klatschen:

    Gruss
    ugt100

  • Eine Möglichkeit über die DynArray-UDF:

    damit würde man sich das nachträgliche Entfernen sparen und die falschen Dateien nicht erst hinzufügen.

  • Hallo Aspirin Junkie,

    das klappt prima mit der UDF ... sauber - Danke

    (die andere Lösung geht such - ist aber nicht ganz so elegant - trotzdem Danke)

    mfg
    ugt1oo

    P.S. letztlich sind beide Lösungen (etwas abstrahiert) nahezu identisch


    mille grazie