Skripte von der Kommandozeile starten

Gelegentlich werde ich gefragt, ob sich Skripte nicht auch von der Kommandozeile starten lassen. Die Antwort lautet Ja, und zwar schon mit FrameScript Version 4. Ich habe das aktuell mit Version 5 getestet und die Dokumentation dazu stimmt. Sie finden das beschrieben im UsersGuide.pdf unter Using ElmScript > Batch Processing.

Bei der Installation wird auch im Windows-Verzeichnis ein Programm RunEslBatch.exe installiert. Dieser Speicherort erlaubt Ihnen den Aufruf von beliebiger Stelle aus. Der kann z.B. so aussehen:

runeslbatch -f"BatchTest.fsl" -a"TEST 1" -a"TEST 2"

Wenn Sie dann im aktuellen Verzeichnis zum Beispiel das folgende Skript haben, werden Ihnen die übergebenen Parameter angezeigt. Das Skript zeigt die zwei möglichen Arten des Zugriffs auf die Parameter:

  • das globale Array Args
  • die globalen Variablen Arg1, Arg2, usw.

Dies ist eine gute Gelegenheit darauf hinzuweisen, selbstdefinierte Variable immer mit v, lv, gv oder ähnlichen Buchstaben beginnen zu lassen, um keinen Namenskonflikt zu bekommen. Und ganz nebenbei lernen Sie die Funktion Evaluate{} kennen…

//BatchTest.fsl
Set lvString = '';
Loop LoopVar(lvX) InitVal(1) Incr(1) 
        While(lvX <= Args.Count)
    Set lvString = lvString + 'Args[' + lvX + ']: ' 
        + Args[lvX] + CharLF;
EndLoop
Display 'Args[n]:' + CharLF + lvString;

Set lvString = '';
Loop LoopVar(lvX) InitVal(1) Incr(1) 
        While(lvX <= Args.Count)
    Set lvString = lvString + 'Arg' + lvX + ': ' 
        + eUtl.Evaluate{'Arg'+lvX} + CharLF;
EndLoop
Display 'ArgN:' + CharLF + lvString;

Und jetzt steht Ihren weiteren Fortschritten bei der Automation noch weniger im Weg! 🙂