Das <commandline>-Element dient zur Ausführung von Befehlen auf Betriebssystemebene. Einem <commandline>-Element können manuell gesetzte Parameter durch vorangehende <param>-Elemente verfügbar gemacht werden. Der auszuführende Befehl wird dem <commandline>-Element als dessen Inhalt übergeben. Das <commandline>-Element muss immer innerhalb eines <exec>-Elements notiert werden, ein <exec>-Element muss ein <commandline>-Element enthalten. Stellen Sie dem Befehl "cmd " voran, um den Befehl an das Kommandozeilentool von Windows zu übergeben und es von diesem ausführen zu lassen. In Befehlen selbst kann nicht direkt auf RCML-Elemente per ID zugegriffen werden (so ist z.B. <commandline ...> cmd $resource.getFile() </commandline> ist nicht möglich!). Deshalb müssen Sie solche Zugriffe vorher in einem <param> speichern und dann darauf zugreifen (siehe Beispiel von <exec>).
Attributname | Datentyp | Beschreibung | Mögliche Werte | Standardwert | Obligatorisch? |
---|---|---|---|---|---|
processor | STRING | Gibt den Interpreter an, der für die Interpretation des Befehls geladen werden soll. | momentan nur velocity. | velocity |
Das <commandline>-Element besitzt keine Subelemente.
Der Inhalt eines <commandline>-Elements ist der Befehl, der ausgeführt werden soll. Die Syntax des Befehls hängt dabei vom Betriebssystem und dem gewählten processor ab.
Das <commandline>-Element besitzt keine Variablenbindungen. Informationen über die Befehlsausführung werden über die Variablenbindungen des <exec>-Elements abgerufen. Ob ein <commandline>-Aufruf erfolgreich war, kann auch durch das <result>-Element in Erfahrung gebracht werden.
Im folgenden Beispiel wird ein einfach Befehlsaufruf ohne Parameter übergeben. Dieser verschiebt alle .txt-Dateien unter C:/ in ein neues Verzeichnis C:/TXTs. Das Beispiel verwendet das <workdir>-Element.
<rcml> <process id="ExampleProcess" name="example process"> <workdir id="workdir" home="./WORK" /> <exec id="ExampleExec" workdir="workdir"> <commandline processor="velocity">cmd move c:\*.txt c:\TXTs</commandline> </exec> </process> </rcml> |