Mit dem Natural-User-Exit SHCMD können Sie direkt aus einem Natural-Programm heraus ein Betriebssystemkommando absetzen.
Dieses Dokument behandelt folgende Themen:
CALL 'SHCMD'
'command'
['option']
|
command |
command wird vom Betriebssystem
ausgeführt. Um Kommandos auszuführen (zum Beispiel Weitere Informationen siehe Beispiele unten. |
---|---|
option |
option beschreibt wie das Kommando ausgeführt werden soll. Dieser Parameter ist optional. Die folgenden Optionen stehen zur Verfügung:
Siehe Parameter-Optionen unten. |
Die folgenden Optionen stehen zur Verfügung:
Anmerkung:
Die Optionen ASYNCH
und SYNCH
dürfen nicht gleichzeitig gesetzt werden.
Die folgenden Return-Codes stehen zur Verfügung:
Return-Code | Beschreibung |
---|---|
0 | Kommando wurde erfolgreich ausgeführt. |
4 | Unerlaubter SHCMD-Parameter wurde angegeben. |
Alle anderen | Betriebssystemabhängiger Fehlercode. |
Das Betriebssystemkommando DIR
ausführen, um
den Inhalt eines Verzeichnisses anzuzeigen:
CALL 'SHCMD''CMD.EXE /C DIR'
Den Return-Code mit der Natural-Funktion RET
abfragen:
RESET rc (I4) CALL 'SHCMD''CMD.EXE /C DIR' rc = RET( 'SHCMD' ) /* retrieve return code IF rc <> 0 THEN /* in case of an error DISPLAY "Error occurred during SHCMD" /* display an error message
Ein Kommando, das Leerzeichen enthält, wird in Anführungszeichen angegeben. Im folgenden Beispiel wird Microsoft Excel aufgerufen:
RESET #cmd (A253) MOVE '"C:\Program Files\Microsoft Office\Office\EXCEL.EXE"' to #cmd CALL "SHCMD" #cmd "ASYNCH"
In diesem Fall muss der Parameter TQ
(Anführungszeichen
übersetzen) auf OFF
gesetzt werden, damit die Anführungszeichen
nicht entfernt werden.
Um vom Parameter TQ
unabhängig zu sein, können
Sie den hexadezimalen ASCII-Code für Anführungszeichen (H'22') am Anfang und
Ende des Kommandos einfügen:
RESET #cmd (A253) MOVE H'22' - "C:\Program Files\Microsoft Office\Office\EXCEL.EXE" - H'22' to #cmd CALL "SHCMD" #cmd "ASYNCH"