Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Try Shell, Try Exec
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Try Shell, Try Exec 
 
Buenas!.

Probando Try con Shell, no me devolvía un error aposta.

Por ejemplo, no puedo hacer esto:

Try Shell "mameu -listclones" To contenido
 If Error Then contenido = File.Load(Application.Path & "/listadeclonesMAME.txt")
 


Debo hacer:

Try Exec ["mameu", "-listclones"] To contenido    
If Error Then contenido = File.Load(Application.Path & "/listadeclonesMAME.txt")
 


El error es producido a "drede" ya que el verdadero nombre del comando es mame.
Lo he cargado desde el propio directorio de la aplicación "temporalmente".
No me interesa copiar, sobre todo si es algo que tengo que probar y subirlo a vosotros por si tengo alguna duda.

Supongo que no hay otra forma de comprobar si disponemos del comando en el sistema.
En mi caso yo lo tengo, pero si subo el ejemplo a la comunidad, lo subo con el archivo de texto que contiene todos los clones.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Try Shell, Try Exec 
 
No entiendo nada    
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Try Shell, Try Exec 
 
Shordi:

Pues que en el caso de Try Shell. Estoy probando a intentar a ejecutar un comando que no existe en el sistema para que de error y
se ejecute la linea siguiente: If Error...pero no lo hace

En cambio si ejecuto Try Exec, gambas se da cuenta de que se produce un error y va correctamente a lo que dice If Error que haga.

Entonces, la pregunta es. ¿ Por qué le ocurre eso con Try Shell ?.

¿ Debí declarar la instrucción con Shell con una variable de tipo proceso ?.

Es fácil de probar son dos lineas. Podrías probar:

Try Shell comandonoexiste
If Error Then Print "Ese comando no existe en el sistema!"
 


Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Try Shell, Try Exec 
 
Citar:
Entonces, la pregunta es. ¿ Por qué le ocurre eso con Try Shell ?.


Pues porque cuando usas Shell lo que haces es abrir una shell con su entorno de ejecución propio dentro de la cual se lanza el comando que le pases. La salida estandar del sistema y la salida de errores son los propios de la shell que lanzas, no de la shell que está lanzando tu programa. Es decir: No puede haber error en tu salida de errores porque la shell se ha ejecutado correctamente (otra cosa es que dentro de ella haya un error)

Exec, por el contrario no funciona así, lanza el comando dentro de tu propia shell y es más simple (y ràpido)

That's why my friend...      
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Try Shell, Try Exec 
 
Ajaaa..

Pues para estas cosas parece mejor usar Exec. Ya ves, yo que soy siempre más de usar Shell que Exec. Y no es por publicidad ni nada de eso.  

Saludos.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Try Shell, Try Exec 
 
Citar:
Pues para estas cosas parece mejor usar Exec.


La diferencia es el entorno de ejecución, con Shell dispones de toda la potencia del entorno: variables del sistema, paths, etc. con Exec, puede ser más complicado según qué quieras hacer.
Como norma general:
-Para comandos simples Exec
-Para cosas más complejas Shell

Saludos
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Try Shell, Try Exec 
 
Y si usas shell, puedes declarar un proceso en gambas para leer la salida estándar y/o la de errores y actuar en consecuencia.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Try Shell, Try Exec 
 
Probare a hacer algo con procesos y Shell a ver que hace con la salida de errores.
Lo cierto es que en el manual de gambas trata mas Exec que Shell.

Aunque los califica de muy parecidos.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron