RUN "meno programu" [HIDE] SYNC/ASYNC [paramExpr_Str] [TIMEOUT timeOutExprStr_Int] |
intIdent_Int := RUN "meno programu" [HIDE] SYNC [paramExpr_Str] [TIMEOUT timeOutExpr_Int] |
RUNEX _toExec [HIDE] SYNC/ASYNC [paramExpr_Str] [TIMEOUT timeOutExprStr_Int] |
intIdent_Int := RUNEX _toExec [HIDE] SYNC [paramExpr_Str] [TIMEOUT timeOutExpr_Int] |
Parametre
"meno programu" | in | Meno spustiteľného programu (voliteľne v úvodzovkách). |
intIdent_Int | out | Identifikátor typu Int - návratový kód programu. |
HIDE | in | Nepovinné kľúčové slovo - nezobrazenie (skrytie) okna štartovaného programu. |
SYNC | in | Synchrónne spustenie programu (čakanie na ukončenie). |
ASYNC | in | Asynchrónne spustenie programu. |
paramExpr_Str | in | Výraz typu Text - parametre spusteného programu. |
TIMEOUT timeoutExpr_Int | in | Výraz typu Int - maximálny čas behu programu v sekundách. |
_toExec | in | Identifikátor typu text. |
Poznámka k "wildcard" parametrom pre Linux/Raspberry PI
Treba si uvedomiť, že expanziu hviezdičiek a podobných špeciálnych znakov vykonáva shell (napr. bash). Preto nasledovný príkaz nebude fungovať:
RUNEX "/usr/bin/rm" SYNC "/tmp/*.txt"
Je nutné vytvoriť pomocný shell skript (napr. /opt/d2000/bin/mydel.sh), ktorý obsahuje volaný príkaz a parameter $* (v syntaxi bash reprezentuje všetky parametre, s ktorými je skript volaný), tj. skript bude obsahovať dva riadky:
#!/usr/bin/env bash
/usr/bin/rm $@
Nezabudnite nastaviť práva skriptu, aby ho užívateľ, pod ktorým je spustený D2000 (štandardne d2000), mohol tento skript spúšťať, tj.
chmod 755 /opt/d2000/bin/mydel.sh
Takýto skript je možné volať a pri volaní shell vykoná expanziu parametrov:
RUNEX "/opt/d2000/bin/mydel.sh" SYNC "/tmp/*.txt"
Iný príklad pre kopírovanie súborov na vzdialený server pomocou ncftpput. Skript /opt/d2000/bin/ncftpput.sh bude obsahovať riadky:
#!/usr/bin/env bash
/usr/bin/ncftpput $@
Volanie zo skriptu:
_parameter := "-F -u myuser -p mypassword ftpserver /some/server/path /some/local/path/*.zip"
_retCode := RUN "/opt/d2000/bin/ncftpput.sh" HIDE SYNC _parameter TIMEOUT 60
; Kopírovanie súboru ; Zdrojový súbor TEXT _copySrc := "d:\d2000.v70\prefix\sqlback\syscfg.db" ; Cieľový adresár TEXT _copyDst := " c:\archiv" ; Parametre pre príkaz copy TEXT _switch := "/Y " ; Návratový kód INT _ret _ret := RUN "cmd /C copy" SYNC _switch + _copySrc + _copyDst ; alebo celý príkaz zadaný ako výraz ; _ret := RUN "" SYNC "cmd /C copy " + _switch + _copySrc + _copyDst IF _ret # _ERR_NO_ERROR THEN ; chyba ENDIF END |