Sto tentando di eseguire un processo in C# utilizzando la classe Process.C# reindirizzare (pipe) l'output di processo a un altro processo
Process p1 = new process();
p1.startinfo.filename = "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();
Quindi in base all'input dell'utente sto costruendo il valore dell'argomento. Ora ho un caso in cui devo pipe l'output di p1 a un altro processo dire grep. quindi ho praticamente provato questo
p1.startinfo.arguments = "-info | grep 1234";
ciò che intendevo è qualcosa di simile xyz.exe -info | grep 1234
ma questo non sembra funzionare in .net .. Posso effettivamente creare un'altra variabile di processo ed eseguire "grep" come un separato processo .. Ma mi stavo chiedendo se c'è un modo per fare come iam provando sopra ..
Ho trovato questo articolo del blog che copre esattamente questa domanda: [Utilizzo del reindirizzamento di output con pipe nelle classi Process/ProcessStartInfo ...] (http://weblogs.asp.net/justin_rogers/archive/2004/02/27/ 81370.aspx) –
Se non si desidera utilizzare CMD, controllare la libreria [MedallionShell] (https://github.com/madelson/MedallionShell). Rende molto più semplice il reindirizzamento del flusso di processo (e altri aspetti della gestione dei processi). – ChaseMedallion