Ich versuche, einen Prozess in C# mit der Process-Klasse auszuführen.C# redirect (pipe) Prozessausgabe zu einem anderen Prozess
Process p1 = new process();
p1.startinfo.filename = "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();
Also basierend auf Benutzereingaben baue ich den Argumentwert. Jetzt habe ich einen Fall, wo ich die Ausgabe von p1 zu einem anderen Prozess, sagen wir grep, leiten muss. also habe ich das im Grunde versucht
p1.startinfo.arguments = "-info | grep 1234";
was soll i ist so etwas wie xyz.exe -info | grep 1234
aber dies scheint nicht in .net zu arbeiten .. Ich kann tatsächlich eine andere Prozessvariable und run „grep“ als separate erstellen Prozess .. Aber ich fragte mich, ob es einen Weg zu tun gibt, wie iam oben ausprobieren.
Ich fand diesen Blog-Artikel, der genau diese Frage behandelt: [Verwenden pipeed Ausgabeumleitung auf den Process/ProcessStartInfo-Klassen ...] (http://weblogs.asp.net/justin_rogers/archive/2004/02/27/ 81370.aspx) –
Wenn Sie CMD nicht verwenden möchten, lesen Sie die [MedallionShell] (https://github.com/madelson/MedallionShell) -Bibliothek. Es vereinfacht die Prozessdatenumleitung (und andere Aspekte der Prozessverwaltung) erheblich. – ChaseMedallion