Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

Akcia RUN




Funkcia
Akcia umožňuje odštartovať externý program.
Deklarácia


Blok kódu
languageesl
themeConfluence
RUN "meno programu" [HIDE] SYNC/ASYNC [paramExpr_Str] [TIMEOUT timeOutExprStr_Int]
 
alebo
 


Blok kódu
languageesl
themeConfluence
intIdent_Int := RUN "meno programu" [HIDE] SYNC [paramExpr_Str] [TIMEOUT timeOutExpr_Int]
 
 
 


Blok kódu
languageesl
themeConfluence
RUNEX _toExec [HIDE] SYNC/ASYNC [paramExpr_Str] [TIMEOUT timeOutExprStr_Int]
 
alebo
 


Blok kódu
languageesl
themeConfluence
intIdent_Int := RUNEX  _toExec [HIDE] SYNC [paramExpr_Str] [TIMEOUT timeOutExpr_Int]

Parametre


"meno programu"inMeno spustiteľného programu (voliteľne v úvodzovkách).
intIdent_IntoutIdentifikátor typu Int - návratový kód programu.
HIDEinNepovinné kľúčové slovo - nezobrazenie (skrytie) okna štartovaného programu.
SYNCinSynchrónne spustenie programu (čakanie na ukončenie).
ASYNCinAsynchrónne spustenie programu.
paramExpr_StrinVýraz typu Text - parametre spusteného programu.
TIMEOUT timeoutExpr_IntinVýraz typu Int - maximálny čas behu programu v sekundách.
_toExecinIdentifikátor typu text.
Popis
Akcia RUN odštartuje program daný textovým reťazcom "meno programu". Akcia RUNEX odštartuje program daný hodnotou identifikátora typu text _toExec.
Pri prvom variante je možné špecifikovať, či bude program spustený synchrónne (SYNC) alebo asynchrónne (ASYNC). Druhý variant je vždy synchrónny. Po skončení programu je jeho návratový kód priradený do identifikátora intIdent_Int.

Ak je maximálny čas behu programu ohraničený kľúčovým slovom TIMEOUT a program neskončí v časovom limite, bude násilne ukončený a návratová hodnota (v prvom prípade) nadobudne hodnotu _ERR_TIME_OUT.

V niektorých prípadoch je potrebné, aby meno programu vzniklo na základe textových operácií. Tu je vhodné použiť akciu RUNEX, ktorá štartuje program daný hodnotou textového identifikátora _toExec.
Rovnaký efekt dosiahneme akciou RUN, ak ako meno programu bude prázdny textový reťazec a celý príkaz sa uvedie ako parameter pomocou výrazu paramExpr_Str (viď. príklad).
Pre Linux/Raspberry PI je nutné zadávať oddelene "meno programu" a parametre, napr.
RUN "/usr/bin/ncftpget" SYNC _paramStr
Pokiaľ bude "meno programu" prázdne alebo bude obsahovať aj parametre, program sa nespustí.

Ak je akcia použitá vo variante s návratovým kódom a nepodarilo sa spustiť program, návratový kód (intIdent_Int) bude nastavený na neplatnú hodnotu.

Poznámka:
Pre OpenVMS len asynchrónne - bez parametrov.

Príklad
Nasledujúci príklad kopíruje súbor d:\d2000.v70\prefix\sqlback\syscfg.db do adresára c:\archiv pomocou štandardných prostriedkov operačného systému (shell spustí príkaz copy).
 


Blok kódu
languageesl
themeRDark
 ; 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

Info
titleSúvisiace stránky:

Akcie v skriptoch