Script mit Parametern starten

  • Hey,
    Ich versuche mein Script mit Parametern zu starten, weiß aber noch nicht wie ich das anstellen soll.
    Fraglich ist auch, ob das überhaupt mit AutoIt realisierbar wäre.

    Also ich will mein compiltes Script so starten können:

    [autoit]

    ShellExecute('Programm.exe \autostart')
    ShellExecute('Programm.exe \reload')
    ShellExecute('Programm.exe \update')

    [/autoit]


    Das sind nur einige Beispiele.

    Einmal editiert, zuletzt von MasterOfTime (6. November 2011 um 13:08)

  • Schonmal die Hilfe zu shellexecute gelesen? Dann sollte klar sein, dass bei shellexecute die Programmparameter im 2. Funktionsparameter übergeben werden. Alternativ kann auch run() benutzt werden, hier müssen die Programmparameter wie in deinem Beispiel übergeben werden.

  • Dafür eignet sich:

    Zitat

    Das besondere Array $CmdLine wird mit den, deinem AutoIt-Skript übergebenen, Kommandozeilenparametern initialisiert. Der Skriptname wird dabei nicht als Parameter aufgefasst; den kann man über @ScriptName herausfinden. Ein Parameter, der Leerzeichen beinhaltet, muss von "doppelten Anführungszeichen" umgeben sein. Kompilierte Skripte akzeptieren Kommandozeilenparameter genauso.

    $CmdLine[0] ist die Anzahl der Parameter
    $CmdLine[1] ist Parameter 1
    $CmdLine[2] ist Parameter 2 etc.
    ...
    $CmdLine[$CmdLine[0]] ist einer der Wege, um den letzten Parameter auszulesen...

  • Das ist mir klar, aber ich möchte das Script, das mit dem Parameter gestartet wird, programmieren.
    Sprich in meinem Beispiel will ich die Datei Programm.exe schreiben.
    Meine Frage ist, wie ich im Script herausfinden kann, ob es ohne bzw. mit welchem Parameter gestartet wurde.

  • Dann siehe Autobert ;)

    programm.exe

    [autoit]


    if $cmdline[0]>=1 then
    msgbox(0,"parameterstart","es wurden " & $cmdline[0] & " Parameter übergeben.")
    else
    msgbox(0,"fehler","keine parameter übergeben")
    exit
    endif

    [/autoit][autoit][/autoit][autoit]

    msgbox(0,"alles gut","programm wird korrekt ausgeführt")

    [/autoit][autoit][/autoit][autoit][/autoit]