Suche Ordner

  • Ich möchte den Ordner E:\Test finden.

    Mit

    AutoIt
    If Not StringRegExp(FileGetAttrib (("E:\Test")), '(?i)[DOC]{3}') Then
    Run (@ComSpec & ' /k robocopy.exe "' & ("E:\Test") & '" "' & ("D:\Test") & '" /E /XO', @SystemDir)
    EndIf

    stelle Ich die Attribute fest und kopiere.

    Wie schreibe ich das Script für

    Finde den Ordner - ist der Ordner vorhanden - dann

    AutoIt
    If Not StringRegExp(FileGetAttrib (("E:\Test")), '(?i)[DOC]{3}') Then
    Run (@ComSpec & ' /k robocopy.exe "' & ("E:\Test") & '" "' & ("D:\Test") & '" /E /XO', @SystemDir)
    EndIf

    Gruß HP

  • Wie schreibe ich das Script für :

    Finde den Ordner

    FileExists findet Ordner oder Dateien.

    Es dürfte zwar eher selten vorkommen, aber mit $sPath = 'E:\Test' würde auch eine extensionslose Datei (statt eines Ordners) gefunden werden (beides zusammen geht nicht).

    Zur Sicherheit kann man daher z.B. folgendes hinzufügen :

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Stimmmt Musashi Aber deinen Wrokaround dafür kannte ich acuh noch nicht. Wieder was gelernt.

    Aber wie du schon sagst, kommt das eher selten vor und sollte normalerweise eigentlich auch vermieden werden.

  • Für den Fall, dass man sowohl die Existenz als auch die Art abfragen möchte bietet sich dann aber eigentlich wieder eher FileGetAttrib an.

    Sprich:

    AutoIt
    If StringInStr(FileGetAttrib('E:\Test'), "D") Then ...

    Edit: Gerade gesehen, dass Musashi auch eine FileGetAttrib-Variante mit drin hat.
    Aber das extra FileExists braucht man eigentlich nicht mehr, da nur dann ein D im FileGetAttrib-Return drin ist, wenn der Pfad existiert UND ein Ordner ist.

  • -> Alternativ : If FileExists($sPath) And StringInStr(FileGetAttrib($sPath), 'D') Then

    Das ist die Lösung, die mir auch bei weiteren Abfragen helfen wird.

    Herzlichen Dank

    Man kann es so machen ohne Schaden anzurichten, ist aber, wie AspirinJunkie und Bitnugger bereits angemerkt haben, 'doppelt gemoppelt'.

    If StringInStr(FileGetAttrib($sPath), 'D') Then reicht hier völlig aus !

    EDIT : BugFix war schneller (inklusive der Wortwahl 'doppelt gemoppelt' ^^ )

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (27. April 2022 um 06:35) aus folgendem Grund: typo