Script mit Run() starten?!

  • Hejo

    Ich hab wieder ein blödes Problem an dem ich schon ewig hänge. Ich will eigentlich nur ganz simpel ein AutoIt-Script aus einem Script heraus starten. Das funktioniert aber nicht.

    Der Run()-Befehl sieht so aus:

    [autoit]

    Run(@ScriptDir & '\vdub_helfer_delete.au3" ' & '"' & $var1 & '" "' & $var2 & '"', "", @SW_HIDE)

    [/autoit]

    Also ich will ein Script mit zwei Parametern starten. Allerdings passiert nichts wenn der Befehl ausgeführt wird. Also hab ich es per CMD versucht:

    [autoit]

    Run(@ComSpec & " /c " & '"' & @ScriptDir & '\vdub_helfer_delete.au3" ' & '"' & $var1 & '" "' & $var2 & '"', "", @SW_HIDE)

    [/autoit]

    Hier öffnet sich zwar eine Millisekunde das cmd-fenster, aber trotzdem wird das externe Script nicht aufgerufen.

    Wenn ich mir den Run-Befehl in die Console schreiben lasse (dass sieht dann zb so aus: "E:\Projekte\AutoIt\vdub_helfer\vdub_helfer_delete.au3" "E:\test.avi" "Test"), und diesen manuell in die Shell kopiere, öffnet sich das Script perfekt inkl. Parameter. Die Pfade und Syntax scheinen also korrekt zu sein. Führe ich den Befehl aber im AutoIt-Script aus, passiert garnichts.

    Hat irgendjemand eine Idee was ich falsch mache?

  • HI,

    möchtest du den wirklich das Script öffnen (mit einem Editor,wahrscheinlich Autoit) oder möchtest du das Kompilierte Programm öffnen ?
    Weil du als Pfad Datei.au3 genommen hast.

    Fallst du das Programm ausführen möchtest, musst du es natürlich erst Kompillieren und den Pfad auf .exe umstellen.

    Kann natürlich auch sein, dass ich dich einfach falsch verstanden habe :D

  • au3-Scripts sind mit Autoit verknüpft. Ich brauch die darum nicht komplieren. Wie gesagt, wenn ich den Pfad manuell in die Shell kopiere, startet das Script ja perfekt - nur der Run-Befehl kriegt es nicht hin. :huh:

    Mittlerweile bin ich aber weiter, so wie es aussieht mag der Run-Befehl keine Anführungsstriche um die zu startende Datei. Ändere ich die Syntax von ersterem auf zweiterem...

    "E:\Projekte\AutoIt\vdub_helfer\vdub_helfer_delete.au3" "E:\test.avi" "Test"
    E:\Projekte\AutoIt\vdub_helfer\vdub_helfer_delete.au3 "E:\test.avi" "Test"

    ... startet das Script. Aber das kann's doch irgendwie nicht sein, oder? Weil wenn nun Leerzeichen im Pfad wären, würden ja Teile davon als Parameter interpretiert werden.

  • Hast du es den schon einmal mit Hochkommertars veruscht ?

    'String'

    Normalrweise schreibt man ja einen Strin der Leerzeichen beinhaltet und Anführungszeichen fordert so :

    " 'String/String String/String' "

    Vielleicht einfach mal nur mit Hochkommertar versuchen.

  • Ich würde des script compilen und dann als exe ausführen... und dann müsste es eigentlich auch mit Run() laufen

    Gruß
    Fabi

  • Das wäre auch mein Gedanke gewesen, deswegen ja auch die Frage am Anfang was du wirklich ausführen willst.
    :D