No se pueden enviar comandos al proceso cmd.exe

Estoy tratando de enviar comandos a un proceso abierto cmd.exe usandoStandardInput.WriteLine(str), sin embargo, ninguno de los comandos parece ser enviado. Primero abro un proceso, con una variable global p (Process p)

p = new Process()
{
    StartInfo = {
        CreateNoWindow = true,
        UseShellExecute = false,
        RedirectStandardError = true,
        RedirectStandardInput = true,
        RedirectStandardOutput = true,
        FileName = @"cmd.exe",
        Arguments = "/C" //blank arguments
    }
};

p.Start();
p.WaitForExit();

Después, trato de enviar un comando usando un método simple, que registra el resultado en un cuadro de texto.

private void runcmd(string command)
{
    p.StandardInput.WriteLine(command);
    var output = p.StandardOutput.ReadToEnd();
    TextBox1.Text = output;
}

Ahora mismo lo estoy probando conDIR, perovar output aparece como nulo, lo que da como resultado que no haya salida. ¿Hay una mejor manera de enviar un comando al proceso abierto cmd.exe?

Respuestas a la pregunta(1)

Su respuesta a la pregunta