Título: ms-dos vb.net Publicado por: NetJava en 15 Febrero 2012, 12:35 pm Buenas!!! Me estoy rallando un monton, y eso que hay bastante información.
Podríais aclararme como se pueden ejecutar comandos msdos desde .net, por ejemplo crear una carpeta¿? Muchas gracias!! Título: Re: ms-dos vb.net Publicado por: kub0x en 15 Febrero 2012, 12:48 pm Hace poco programé mi propia línea de comandos en VB .NET, ya después codee una shell remota.
Bajo mi experiencia, conozco dos formas de hacer lo que pides, segun quieras capturar el output del código o sólo ejecutarlo. Si sólo buscas ejecutar el código utiliza la función Shell, la cual ejecutará cualquier comando que desees. Un breve ejemplo: Código
Cabe decir que si quieres capturar el output de esta manera se haría de la siguiente forma: Código: CMD /C netstat -ano > C:\output.txt PERO, hay otra forma más limpia, más profesional y no tan díficil de comprender, que ya es utilizando la clase Process de .NET Te explico: en la clase Process hay propiedades para asignar el comando y los argumentos de éste para posteriormente ejecutarlos, ya sea en segundo plano sin mostrar la ventana al usuario o mostrándola. Además de esto, es muy cómodo utilizar esta clase para capturar el output o salida del comando, ya que no lo tiene que guardar en ningún sitio en texto plano. Ejemplo: Código
Échale imaginación y ganarás. Un Saludo. Título: Re: ms-dos vb.net Publicado por: NetJava en 15 Febrero 2012, 13:54 pm Buenas, muchas gracias.
Lo del shell, perfecto. La de abajo me esta tocando la moral un poco. Como comando he probado de todas las posibilidades, con un ejemplo simple, como crear una carpeta de en C:\, en argumento por lo que he visto no es necesario introducir nada en este caso. Pues no me quiere crear la carpeta... No se te pongo los comando que he probado: (han sido tantas variantes) CMD /C md hola md hola CMD md hola . . . Título: Re: ms-dos vb.net Publicado por: NetJava en 15 Febrero 2012, 15:31 pm Buenas, de momento para ir avanzando me estoy con la primera forma.
Pero ya os hago el preguntote!!! Yo sigo intentandolo desde luego. Como se podría ejecutar esto desde .net con shell: Código: cd\ Muchas gracias!! Título: Re: ms-dos vb.net Publicado por: kub0x en 15 Febrero 2012, 18:58 pm Buenas, de momento para ir avanzando me estoy con la primera forma. Pero ya os hago el preguntote!!! Yo sigo intentandolo desde luego. Como se podría ejecutar esto desde .net con shell: Vamos por partes, la respuesta a esta pregunta es sencilla :P Se me ocurre que podrías crear un archivo .bat con el código que quieres automatizar y lllamarlo o ejecutarlo desde VB.NET con un simple: Código
Donde ruta_fichero es la variable de tipo String que almacena en memoria la dirección del path o ruta donde se encuentra tu archivo .bat a ejecutar. Con esto debería ejecutarse tu archivo. Hay un truquillo que implementé en .NET y es el siguiente: Cuando pasas el comando y el argumento como argumento al método que crea el proceso de ejecucción del comando se asignaran a las variables locales de dicho método lo que hayas pasado. Te aconsejo que separes dicho código de ejecucción del comando en dos partes: Código ¿Como saber si el comando que has introducido tiene argumentos? Bien, buscas los siguientes caracteres en el TextBox donde introduces el comando: "-" , "/" y los espacios (Chrw(32)) Espero que hayas entendido la explicación, cualquier duda ya sabes. Saludos. |