La salida de la línea de comandos se lee como una cadena vacía
Estoy intentando ejecutar comandos de línea de comandos y leer la salida en C #. Este es mi código:
ProcessStartInfo cmdInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
cmdInfo.CreateNoWindow = true;
cmdInfo.RedirectStandardOutput = true;
cmdInfo.UseShellExecute = false;
Process cmd = new Process();
cmd.StartInfo = cmdInfo;
cmd.Start();
string result = cmd.StandardOutput.ReadToEnd();
cmd.WaitForExit();
cmd.Close();
return result;
Funciona la mayor parte del tiempo, pero a veces resulta = "" cuando eso es imposible para el comando que estoy usando (por ejemplo, agregar ruta debería dar salida en caso de éxito o fracaso). ¿Algunas ideas? Me preguntaba si tal vez había creado una condición de carrera entre el proceso y la llamada ReadToEnd?