Hola a todos, soy nuevo en el foro asi que antes de nada me presento ;D
Bueno mi problema reside en que al intentar ejecutar un archivo .BAT desde VB mediante:
Private Sub Command1_Click()
Shell "C:\prueba.bat", vbHide
End Sub
El .BAT ejecuta un dir y lo guarda en un archivo de texto. El problema es que el archivo de texto no es creado, al ejecutarlo desde VB, con el codigo anterior pero si que se abre la consola ya que me salta el Firewall.
Sin embargo si ejecuto el BAT haciendo doble click con el raton el fichero de texto si que es creado correctamente.
A ver si alguien puede echarme una mano.
Private Sub Command1_Click()
Shell "c:\takata.bat"
End Sub
esto esta bien ahora lo k dices es k no se te abre el fichero no desde vb? pk fijate eso es por q bat, debe tener un directorio de trabajo,osea una ruta desde donde llamaras a los archivos por eso cuando tu lo ejecutas con el doble click se lo ves por q la ruta es el directorio donde se encuentra el archivo. Pero cuando lo llamas desde VB, la ruta ya seria el directorio donde tenes la aplicación de vb, Entonces, para que te funcione la llamada a Shell(), debes tener el bat junto a el un exe con el mismo directorio (corrije la ruta del bat), si no se te es posible si que el bat estue en el mismo directorio que el exe, usa la funcion api "ShellExecute():"
Lo que entiendo es que el bat si se ejecuta, pero el archivo que debería de generarse con >> no aparece verdad?
Revisa bien que seguro el archivo esta creado, pero no en el directorio que esperas :P
Saludos
o tal vez hay un error en el codigo del .bat y por eso no lo crea :P
Cita de: vivachapas en 23 Octubre 2008, 18:19 PM
o tal vez hay un error en el codigo del .bat y por eso no lo crea :P
no eso no es el peo es con al ruta... el error siempre pasa por eso , su code tal cual como lo mostro esta bien, solo debe poner cuidado a lo k le dijo Novlucker y me
No se dan cuenta lo k dice el lo ejecuta directamente y funciona, solamente no le funciona desde vb.
Creo que lo que dice carolmuriel en su primer post seria mas razonable
El codigo del Bat creo esta bien porque al ejecutarlo desde el explorador de Windows funciona perfectamente, pero cuando lo hago con el codigo que os he puesto desde VB la consola se abre (me salta el aviso al Firewaal) pero el archivo de texto donde se tenia que haber almacenado el resultado del comando dir no es creado.
Ahora oy a probar lo que dice carolmuriel y os cuento si me va.
Ya esta solucionado, si se ejecuta un bat desde VB mediante funcion Shell el .exe ha de estar en la misma carpeta que el bat como bien decia carolmuriel.
Gracias por la ayuda
Wenas, si no quieres tener el exe en la misma carpeta tb puedes hacer esto:
shell "cmd /c dir /o /n /s >dir.txt"
un saludo ;)
Prueba así:
Private Sub Command1_Click()
Shell "cmd /c C:\prueba.bat", vbHide
End Sub
Saludos!