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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta