Si se ejecuta a través de la clase Process
, puede redirigir los flujos de lo que puede procesarlos. Puede leer stdout o stderr de forma síncrona o asíncrona. Para habilitar la redirección, establezca las propiedades de redirección apropiadas en true
para las secuencias que desea redireccionar (por ejemplo, RedirectStandardOutput
) y configure UseShellExecute
en false
. Luego puedes simplemente comenzar el proceso y leer de las transmisiones. También puede alimentar la entrada redirigiendo stdin.
por ejemplo, procesar e imprimir cualquiera que sea el proceso escribe en la salida estándar de forma sincrónica
var proc = new Process()
{
StartInfo = new ProcessStartInfo(@"SomeProcess.exe")
{
RedirectStandardOutput = true,
UseShellExecute = false,
}
};
if (!proc.Start())
{
// handle error
}
var stdout = proc.StandardOutput;
string line;
while ((line = stdout.ReadLine()) != null)
{
// process and print
Process(line);
Console.WriteLine(line);
}
me encontré con la muestra [aquí] (http://msdn.microsoft.com/en-us/library/system. diagnostics.process% 28v = vs.80% 29.aspx) que muestra cómo leer tanto stdout como stderr con subprocesos útiles. Consulte también http://cleancode.sourceforge.net/api/csharp/html/T_CleanCode_IO_ExecProcess.htm. –