Saltar al contenido

Como ejecutar comandos de msdos desde vb.net

Podemos hacerlo con Shell, en mi caso yo lo hice con Shell, monté un fomulario con un textbox donde recogía el comando y un botón ejecutar.
(También puse una label para saber por donde pasaba, pues es muy vulnerable a errores).

Esto es el código que está en el evento click del botón:

Sub Button1Click(sender As Object, e As EventArgs)
‘Shell(”cmd”, AppWinStyle.NormalFocus) – Opciones de shell
try
Shell(contenidoCaja)
label1.Text=”…todo bien”
Catch noHayNada As System.NullReferenceException
label1.Text=”Escribe algo, membrillo”
Catch comandoErroneo As System.IO.FileNotFoundException
label1.Text=”Debe ser un comando valido de ms-dos”
Catch Errores As Exception
label1.Text=”Ni idea, algo ha fallado”
End Try
End Sub

Le he puesto un control de errores pues, si lo dejas vacio o con cualquier problema de sintaxis da error y te saca del programa. Comentar que con Shell no se puede capturar lo que devuelve ms-Dos.

Para poder ejecutar comandos y capturar lo que devuelve tendríamos que realizarlo con:
ProcessStartInfo()
y capturarlo en un
System.IO.StreamReader = x.StandardOutput
Cuando yo lo probé me funcionó para algunos comandos de msdos pero no para los que yo quería.
Os pongo un enlace a una web con un ejemplo:
http://micsharp.wordpress.com/2008/08/14/capturar-salida-de-un-proceso-cmd-ping/