Folder mit Leerzeichen löschen

  • Hallo liebe Gemeinde,

    die Tücke steckt immer im Detail, gerade wenn man noch am Anfang steht. Zum Löschen eines Verzeichnisses kann man den Befehl

    AutoIt
    _RunDOS("del /Q e:\test test\*.*")

    verwenden. Dieses funktioniert auch, aber was tun wenn hier Leezeichen enthalten sind, noch mal den Namen in " hilkft jedenfalls nicht


    lg


    chris

  • bei Leerzeichen muß der Pfad in eigene Hochkomma aingefasst werden ;)

    Code
    _RunDOS('del /Q "e:\test test\*.*"')

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Wenn du dir das als Stoplerstein ausräumen willst, kannst du dir dafür auch eine Funktion basteln (kommt halt drauf an wie oft man drüber stolpert, sonst Sinnfrei):

    AutoIt
    _RunDOS('del /Q ' & CheckPath("e:\test test\*.*"))
    
    Func CheckPath($Path)
        If StringInStr($Path, ' ') then $Path = '"' & $Path & '"'
        Return $Path
    EndFunc

    Aber warum löschst du Dateien nicht direkt mit FileDelete()?

  • also so funktioniert dass nicht, habs eben noch mal gestestet, nur ohne Leerzeichen

    AutoIt
     _RunDOS('RmDIR /Q "C:\C:\Program Files\Test"')

    mit der Funktion probiere ich eben mal, mit FileDelete oder Fileremove gibt es das selbe Problem in grün, hab es getestet.

    lg

    chris

    Einmal editiert, zuletzt von casi4712 (1. Februar 2022 um 13:20)

  • Hi casi4712 ,

    ach Chris, du wilst C:\C:\Program Files... löschen => 2x C:\, dass kann nicht funktionieren.

    Kurze Variante:

    AutoIt
    DirRemove('C:\Program Files\Test', 1)


    Empfohlene Variante:

    AutoIt
    Global Const $DIR_REMOVE = 1
    Global $sFolder = 'C:\Program Files\Test'
    
    DirRemove($sFolder, $DIR_REMOVE)
    • $DIR_REMOVE besagt das Dateien und Unterordner auch gelöscht werden.
    • Wenn du das nicht willst, dann einfach den Parameter weg lassen

    By the way: Ich beziehe mich hier auf post #1 in dem steht "[...] Zum Löschen eines Verzeichnisses [...]"

    Viele Grüße
    Sven

  • hallo noch mal und guten Abend, nene dass mit dem doppelten c hatte ich schon gesehen, klappte trotzdem nicht, ich versuchs jetzt mal mit Global Const, bin gespannt. Und Oscar, ich mag zwar noch in Autoit ein Volldeppsein, aber ja ich habe Adminrechte, kanns ja in cmd auch löschen

    Nachtrag,

    das funktioniert nur als 3 zeiler

    AutoIt
    ; Script Start - Add your code below here
    
    #include <DirRemove.au3>
    Global $sFolder = 'C:\Program Files\Test Test'
    DirRemove($sFolder, $DIR_REMOVE)

    sobald man dass in anddere Scripts einbaut kommt die Meldung

    #include < DirRemove.au3 > error opening the fil. Ich komme mir langsam echt bescheuert vor, wo kann man diese au downloaden, habe leider keine Quelle gefunden?

    schönen Abend noch

    lg

    chris

    2 Mal editiert, zuletzt von casi4712 (1. Februar 2022 um 21:03)

  • So jetzt funktioniert es urplötzlich auch so

    Global $sFolder = 'C:\Program Files\Test Test'

    DirRemove($sFolder, $DIR_REMOVE)

    das ganze hat schon ein gewisses Eigenleben lach


    lg

    chris

  • Zitat von casi4712

    das funktioniert nur als 3 zeiler

    C
    ; Script Start - Add your code below here
    
    #include <DirRemove.au3>
    Global $sFolder = 'C:\Program Files\Test Test'
    DirRemove($sFolder, $DIR_REMOVE)

    sobald man dass in andere Scripts einbaut kommt die Meldung :

    #include < DirRemove.au3 > error opening the file.

    Ich komme mir langsam echt bescheuert vor, wo kann man diese au downloaden, habe leider keine Quelle gefunden?

    Eine DirRemove.au3 gibt es auch gar nicht. DirRemove ist eine Standardfunktion von AutoIt.

    Die Hilfe liefert den relevanten Hinweis zum Flag $DIR_REMOVE. Falls Du diese Konstante verwenden möchtest, dann muss #include <AutoItConstants.au3> eingebunden werden (wie Moombas bereits schrieb). Alternativ kannst Du die 'magic number' 1 angeben.

    das ganze hat schon ein gewisses Eigenleben lach

    Ein Blick in die Hilfe kann hier Wunder bewirken ;) .

    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 (1. Februar 2022 um 23:17)

  • casi4712

    Du solltest zwingend SciTE4AutoIt installieren.

    Dann brauchst du nur den Cursor in einen Begriff setzen, F1 drücken und bekommst die detaillierte Funktionsbeschreibung mit Beispiel.

    Das erleichtert das Arbeiten ungemein, weil du nicht ständig googeln musst. Und ich kann mich an meine Anfänge erinnern, da habe ich auch jeden zweiten Befehl nachschauen müssen. Oft auch bei jeder Verwendung um die korrekten Parameter zu wissen.

  • Uund ansonsten reicht auch Google: einfach autoit und den Funktionsnamen eingeben und der erste Eintrag passt in 99% der Fälle

    Beispiel: autoit Dirremove

    Und schon landest du auf dem oben gezeigtem Link + evtl. weitere Suchergebnisse für Beiträge in denen diese Funktion genutzt/diskutiert wird.

    Trotzdem empfehle ich, wie BugFix, Scite zu nutzen. Das macht dir das leben wesentlich einfacher.

  • Jo, dann noch mal wegen SCITE, das hier ist es doch nicht oder Scintilla:5.1.5, das steht bei der Info, eine spezielle Version für Autoit konnte ich nicht finden. In dieser Versioon ist Auto it bei languages nicht mal aufgeführt. Vielleicht habt Ihr ja einen Link parat, wäre cool. Übrigens auf dieser Hilfeseite war ich längst.


    lg


    Chris

  • Jo, dann noch mal wegen SCITE, das hier ist es doch nicht oder Scintilla:5.1.5, das steht bei der Info, eine spezielle Version für Autoit konnte ich nicht finden.

    [...]

    Vielleicht habt Ihr ja einen Link parat, wäre cool.

    Den Link hatte ich Dir bereits im Thread buttons-klickbar-machen mitgeteilt :

    Ich würde Dir empfehlen, die Vollversion des SciTE-Editors ( SciTE4AutoIt3.exe ) zu installieren.

    AutoIt selbst installiert nur eine Lite-Version. Dort gibt es die von Velted angesprochene Konsolenausgabe zwar auch, die Vollversion liefert aber noch weitere hilfreiche Tools.

    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."