Estoy intentando ejecutar un proceso en C# utilizando la clase Process.C# redirigir (canalizar) la salida del proceso a otro proceso
Process p1 = new process();
p1.startinfo.filename = "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();
De acuerdo con la entrada del usuario estoy construyendo el valor del argumento. Ahora tengo un caso en el que tengo que conectar la salida de p1 a otro proceso digamos grep. así que básicamente intenté esto
p1.startinfo.arguments = "-info | grep 1234";
lo que quería decir algo así como xyz.exe -info | grep 1234
pero esto no parece funcionar en .net .. De hecho, me puedo crear otra variable de proceso y ejecutar "grep" como un separado proceso ... Pero me preguntaba si hay alguna manera de hacerlo como lo estoy haciendo antes.
Encontré este artículo del blog que cubre exactamente esta pregunta: [Utilizando la redirección de salida por canal en las clases Process/ProcessStartInfo ...] (http://weblogs.asp.net/justin_rogers/archive/2004/02/27/ 81370.aspx) –
Si no desea usar CMD, consulte la biblioteca [MedallionShell] (https://github.com/madelson/MedallionShell). Hace que la redirección de flujo de procesos (y otros aspectos de la gestión de procesos) sea mucho más simple. – ChaseMedallion