Soy nuevo en C# y trato de desarrollar una pequeña aplicación que internamente abra un símbolo del sistema y ejecute algún comando aquí. Esto es lo que he hecho hasta ahora:Esperando que se complete el comando en C#
m_command = new Process();
m_command.StartInfo.FileName = @"cmd.exe";
m_command.StartInfo.UseShellExecute = false;
m_command.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
m_command.StartInfo.CreateNoWindow = true;
m_command.StartInfo.RedirectStandardInput = true;
m_command.StartInfo.RedirectStandardOutput = true;
m_command.Start();
m_reader = m_command.StandardOutput;
m_writer = m_command.StandardInput;
m_writer.WriteLine("Somecommand"); //execute some command
Como se puede ver, he redirigido la entrada y la salida. Mi pregunta es cómo puedo ejecutar el "algún comando" sincrónicamente, es decir, quiero leer el resultado de mi comando usando la salida redirigida. Para eso tengo que esperar hasta que el comando que invoqué usando WriteLine para completar. ¿Cómo puedo hacer eso?
Pero no quiero que se cierre mi ventana de comandos. Quiero volver a utilizar el mismo símbolo del sistema para ejecutar otro comando. ¿Funcionará este método? – Naveen
Eso esperará hasta que se cierre el cmd.exe, pero ignore el final de "somecommand". –
Siempre puede agregar m_writer.WriteLine ("exit"); –