Principales respuestas
Ejecutar un .bat añadido al proyecto de Vb.net

Pregunta
-
Buenos días, buscaba la forma de ejecutar un archivo .bat que está incrustado en mi proyecto.
Necesito que se ejecute en un evento Load (al abrirse el programa).
Como otra alternativa, el programa de Vb.net podría ejecutar las tres líneas de código del archivo .bat, pero no supe bien cómo hacer esto.
FJ Pino
lunes, 13 de abril de 2015 19:53
Respuestas
-
Debes ejecutar el Process con el método
myProcess.Start() myProcess.WaitForExit()
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos
- Propuesto como respuesta Karen MalagónModerator miércoles, 15 de abril de 2015 17:01
- Marcado como respuesta Enrique M. MontejoModerator viernes, 17 de abril de 2015 6:30
martes, 14 de abril de 2015 10:58 -
Hola querido amigo tengo esta propuesta para tu problema:
Dim psi As New ProcessStartInfo("Ruta de tu archivo") psi.RedirectStandardError = True psi.RedirectStandardOutput = True psi.CreateNoWindow = False psi.WindowStyle = ProcessWindowStyle.Hidden psi.UseShellExecute = False Dim process As Process = Process.Start(psi)
Espero haberte ayudado gracias.
- Marcado como respuesta Enrique M. MontejoModerator viernes, 17 de abril de 2015 6:29
lunes, 13 de abril de 2015 20:11 -
Prueba asi a ver que te parece:
im Ruta As String Ruta = "C:\BackUps" If Not Directory.Exists(Ruta) Then Directory.CreateDirectory(Ruta) Shell("C:\Datos\BACKUP.BAT", AppWinStyle.NormalFocus, True) MsgBox("BackUp Finalizado Correctamente", MsgBoxStyle.Exclamation, Title:="Proceso Concluido") Else : Shell("C:\Datos\BACKUP.BAT", AppWinStyle.NormalFocus, True) MsgBox("BackUp Finalizado Correctamente", MsgBoxStyle.Exclamation, Title:="Proceso Concluido") End If
Aprendiz de todos maestro de nadie. Saludos desde Cd. Juarez Chihuahua Mexico. DS.
- Marcado como respuesta Enrique M. MontejoModerator viernes, 17 de abril de 2015 6:30
lunes, 13 de abril de 2015 23:01 -
Hola FJ Pino que codigos tiene dentro de archivos .bat
Puedes ejecutar el cmd para los codigos .bat abajo te dejo un proyecto mio hecho para internet explorer
es para cerrar la aplicacion de internet explorer y otra cosa el codigo se ejecuta en un evento load en mi proyectotaskkill /im "iexplore.exe"
Private WithEvents myProcess As Process
myProcess = New Process()
myProcess.StartInfo.UseShellExecute = True
myProcess.StartInfo.FileName = "cmd.exe"
myProcess.StartInfo.CreateNoWindow = True
myProcess.StartInfo.Arguments = "/Ctaskkill /im iexplore.exe"
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
myProcess.EnableRaisingEvents = True
myProcess.Start()
Saludos
- Editado Didier Gonzalez martes, 14 de abril de 2015 15:17
- Marcado como respuesta Enrique M. MontejoModerator viernes, 17 de abril de 2015 6:30
martes, 14 de abril de 2015 2:51
Todas las respuestas
-
Hola querido amigo tengo esta propuesta para tu problema:
Dim psi As New ProcessStartInfo("Ruta de tu archivo") psi.RedirectStandardError = True psi.RedirectStandardOutput = True psi.CreateNoWindow = False psi.WindowStyle = ProcessWindowStyle.Hidden psi.UseShellExecute = False Dim process As Process = Process.Start(psi)
Espero haberte ayudado gracias.
- Marcado como respuesta Enrique M. MontejoModerator viernes, 17 de abril de 2015 6:29
lunes, 13 de abril de 2015 20:11 -
Gracias por la respuesta, y en cuanto a lo que propusiste, no funcionó correctamente. La ventana de cmd se abre una milésima de segundo y desaparece, cuando al final del código tiene un @pause para detenerlo y comprobar que se ejecutó correctamente. (Previamente cambié el ProcessWindowStyle de Hidden a Normal)
Intenté poniendo el nombre del .bat que está incrustado en el proyecto y ni siquiera apareció, pero cuando lo ubiqué en el escritorio y puse la ruta exacta, apareció lo que mencioné antes, ese parpadeo del cmd.
FJ Pino
lunes, 13 de abril de 2015 22:57 -
Prueba asi a ver que te parece:
im Ruta As String Ruta = "C:\BackUps" If Not Directory.Exists(Ruta) Then Directory.CreateDirectory(Ruta) Shell("C:\Datos\BACKUP.BAT", AppWinStyle.NormalFocus, True) MsgBox("BackUp Finalizado Correctamente", MsgBoxStyle.Exclamation, Title:="Proceso Concluido") Else : Shell("C:\Datos\BACKUP.BAT", AppWinStyle.NormalFocus, True) MsgBox("BackUp Finalizado Correctamente", MsgBoxStyle.Exclamation, Title:="Proceso Concluido") End If
Aprendiz de todos maestro de nadie. Saludos desde Cd. Juarez Chihuahua Mexico. DS.
- Marcado como respuesta Enrique M. MontejoModerator viernes, 17 de abril de 2015 6:30
lunes, 13 de abril de 2015 23:01 -
Gracias por la respuesta Dany Solis, pero no veo la forma de aplicar el código que me pasaste. Quiero decir que lo que yo busco es una manera de ejecutar un batch que tengo importado dentro del proyecto o de ejecutar varias líneas de código CMD directamente en un evento Load (Por ejemplo, con el comando Shell, que hasta donde vi sólo ejecuta una línea), no de buscarlo dentro del disco y ejecutarlo.
FJ Pino
lunes, 13 de abril de 2015 23:33 -
Hola FJ Pino que codigos tiene dentro de archivos .bat
Puedes ejecutar el cmd para los codigos .bat abajo te dejo un proyecto mio hecho para internet explorer
es para cerrar la aplicacion de internet explorer y otra cosa el codigo se ejecuta en un evento load en mi proyectotaskkill /im "iexplore.exe"
Private WithEvents myProcess As Process
myProcess = New Process()
myProcess.StartInfo.UseShellExecute = True
myProcess.StartInfo.FileName = "cmd.exe"
myProcess.StartInfo.CreateNoWindow = True
myProcess.StartInfo.Arguments = "/Ctaskkill /im iexplore.exe"
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
myProcess.EnableRaisingEvents = True
myProcess.Start()
Saludos
- Editado Didier Gonzalez martes, 14 de abril de 2015 15:17
- Marcado como respuesta Enrique M. MontejoModerator viernes, 17 de abril de 2015 6:30
martes, 14 de abril de 2015 2:51 -
Debes ejecutar el Process con el método
myProcess.Start() myProcess.WaitForExit()
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos
- Propuesto como respuesta Karen MalagónModerator miércoles, 15 de abril de 2015 17:01
- Marcado como respuesta Enrique M. MontejoModerator viernes, 17 de abril de 2015 6:30
martes, 14 de abril de 2015 10:58 -
Intenta de esta manera en el load de tu formulario:
System.Diagnostics.Process.Start("BACKUP.bat")
Aprendiz de todos maestro de nadie. Saludos desde Cd. Juarez Chihuahua Mexico. DS.
martes, 14 de abril de 2015 16:48