.BAT en VB

Iniciado por garsen, 23 Octubre 2008, 17:20 PM

0 Miembros y 1 Visitante están viendo este tema.

garsen

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.

carolmuriel

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():"

Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

vivachapas

o tal vez hay un error en el codigo del .bat y por eso no lo crea :P

carolmuriel

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

Angeldj27

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


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

garsen

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.

garsen

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

WestOn

Wenas, si no quieres tener el exe en la misma carpeta tb puedes hacer esto:
Código (vb) [Seleccionar]
shell "cmd /c dir /o /n /s >dir.txt"

un saludo ;)
En mi cabeza existe una barrera espacio-tiempo de 4cm³. ¿Alguien sabe como eliminarla?.
                                                                                                                                                                                                                            

Spider-Net

Prueba así:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
       Shell "cmd /c C:\prueba.bat", vbHide
End Sub


Saludos!