DOS Ausgabe in Datei schreiben funktioniert nicht

  • Jemand eine Idee warum das so nicht funktioniert? Per Hand über die Kommandozeile funktionieren beide Varianten.
    Hinweis: Das Script vererbt die Ordnerberechtigungen des angegebenen Ordners auf alle Unterordner, also am besten in einem separaten Ordner testen.

    [autoit]


    $path = "E:\Testordner\*"
    ShellExecuteWait("icacls.exe", '"' & $path & '"' & ' /reset /T') ; funktioniert (dos fenster bei 5000 ordnern/dateien recht lange sichtbar)
    ShellExecuteWait("icacls.exe", '"' & $path & '"' & ' /reset /T >>"E:\test.txt"') ; funktioniert nicht, DOS Fenster wird sofort wieder geschlossen, datei wird keine erstellt, rechte vermutlich auch nicht gesetzt...

    [/autoit]

    3 Mal editiert, zuletzt von misterspeed (10. März 2013 um 17:28)

    • Offizieller Beitrag

    Wird die Ausgabeumleitung in eine Datei nicht mit > anstatt >>ausgeführt?
    Ausserdem denke ich die Zieldatei der Umleitung wird nicht mit " eingefaßt.
    Kann mich aber auch irren, Kommandozeile ist schon eine Weile her.

  • Hab das mal ausprobiert, funktioniert per Hand sowohl mit einem also auch mit zwei ">". Auch der Pfad kann in Anführungszeichen sein bzw. muss er vermutlich bei Leerzeichen im Pfad auch. Im Script klappts leider trotzdem nicht, auch wenn ich die genannten Änderungen versuche.

    EDIT: Nochmal gegoogelt wegen der "> Vs. >> " Frage

  • Hi misterspeed,

    ich vermute es liegt an

    [autoit]

    ShellExecute

    [/autoit]

    bzw. dem 2. Parameter.
    Der 2. Parameter enthält ja die Parameter für das Programm (1. Parameter) und wahrscheinlich nur diese! D.h. er akzeptiert wohl keine CMD-Befehle.

    Ich schätze mal, wenn du das ganze über

    [autoit]

    Run

    [/autoit]

    realisierst, dann funktionierts auch.

    PS:
    Ich arbeite auch viel lieber mit "Run" statt mit "ShellExecute"


  • PS:
    Ich arbeite auch viel lieber mit "Run" statt mit "ShellExecute"

    Dito. Wollte nur mal shellexecute ausprobieren, weil ich das bisher nie benutzt habe. Werd das morgen mal per run versuchen, vorhin hatte das irgendwie nicht geklappt, vermutlich wegen fehlendem workingdir oder unvollständiger Pfadangabe zur icacls.exe.