Principal > lang > exec 
 en fr de it nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW eo
Previo  Siguiente  Editar  Renombrar  Deshacer  Refrescar  Buscar  Administración  
Documentación
Historia
 
¡Precaución! La página no está actualizada.  Véase la versión inglesa 
EXEC
[ Proceso = ] EXEC Comando [ WAIT ] [ FOR { { READ | INPUT } | { WRITE | OUTPUT } }
EXEC Comando TO Variable

Ejecuta un comando. Para gestionarlo, se crea un objeto Process internamente.

El comando se ha de especificar como una matriz de cadenas que contiene al menos un elemento. El primer elemento de dicha matriz es el nombre del comando, y el resto son parámetros opcionales.

Si emplea las palabras clave INPUT y OUTPUT en lugar de READ y WRITE, el proceso se ejecutará dentro de un terminal virtual. Esto significará que el proceso creera encontrarse dentro de un terminal real.

Para obtener una referencia al objeto Process interno, utilice la asignación.

Si hace uso de la segunda sintaxis, el comando se ejecuta, el intérprete espera a que finalice, y toda la salida del programa es devuelta en la cadena que se indique.

Ejemplo

' Obtener el contenido de una carpeta

EXEC [ "ls", "-la", "/tmp" ] WAIT

' Lo mismo, pero en segundo plano

DIM Content AS String

EXEC [ "ls", "-la", "/tmp" ] FOR READ

...

PUBLIC SUB Process_Read()

  DIM sLine AS String

  LINE INPUT #LAST, sLine

  Content = Content & sLine
  PRINT sLine

END

Para conocer cuantos bytes puede leer en un evento Process_Read, emplee la función Lof.

Dado que los argumentos se envían directamente al proceso, no es necesario que utilice caracteres especiales como comillas simples o dobles, del modo en que lo haría en una shell:
' perl -e 'print while <>;' se convierte en:

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

Véase también

Gestión de Procesos, Process, Lof