Page de démarrage > lang > exec 
 en de es it nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW eo
Précédent  Suivant  Éditer  Renommer  Annuler  Rafraîchir  Rechercher  Administration  
Documentation
Historique
 
Attention! La traduction de cette page n'est pas à jour.  Voir la version anglaise 
EXEC
[ Process = ] EXEC Command [ WAIT ] [ FOR { { READ | INPUT } | { WRITE | OUTPUT } } ] [ AS Name ]
EXEC Command TO Variable

Exécute une commande. Un objet interne Process est créé pour gérer la commande.

Syntaxe standard

La commande passée à EXEC doit être spécifiée soit comme une liste de constantes chaîne de caractères séparées par des virgules, soit comme un tableau. Le premier élément de la liste/tableau est le nom de la commande, et les autres sont les paramètres optionnels de la commande.

Si vous utilisez les mots clef INPUT et OUTPUT au lieu de READ et WRITE, alors le processus est exécuté dans un terminal virtuel. Cela signifie que le processus va croire qu'il fonctionne dans un vrai terminal.

Nom est le nom d'événement utilisé par l'objet Process. Par défaut, "Process" est le nom utilisé.

Vous pouvez avoir une référence vers l'objet interne Process créé en utilisant une affectation.

Syntaxe courte

Si vous utilisez la deuxième forme de la syntaxe, la commande est exécutée, l'interprèteur attend la fin de son exécution, puis la sortie de la commande achevée ast placée dans la chaîne spécifiée.

Pendant l’exécution de la commande, vous n'avez aucun contrôle sur le déroulement du processus exécuté.

Exemple

' Récupère le contenu d'un répertoire
EXEC [ "ls", "-la", "/tmp" ] WAIT

' Récupère le contenu d'un répertoire dans une chaîne de caractères
DIM sOutput AS String
EXEC [ "ls", "-la", "/tmp" ] TO sOutput

' Récupère le contenu d'un répertoire dans une chaîne de caractères, mais en arrière plan
DIM sOutput AS String

' Un nom d'événement spécifique est utilisé
EXEC [ "ls", "-la", "/tmp" ] FOR READ AS "Contents"

...

PUBLIC SUB Contenu_Read()

  DIM sLine AS String

  READ #LAST, sLine, -256

  sOutput &= sLine

END

PUBLIC SUB Contenu_Kill()

  PRINT sOutput

END

Si vous voulez connaître combien d'octets vous pouvez lire dans un gestionnaire d'évènement Process_Read, utilisez la fonction Lof.

Comme les arguments sont envoyés directement au processus, vous n'avez pas à les mettre entre guillemets, comme vous devez le faire avec le shell.

' perl -e 'print while <>;' devient

EXEC [ "perl", "-e", "print while <>;" ] FOR READ WRITE

Voir aussi

Gestion des processus, Process, Lof, Différences entre Shell et Exec