Próbuję uruchomić proces w języku C# przy użyciu klasy Proces.C# przekierowanie (potok) przetwarzanie danych wyjściowych do innego procesu
Process p1 = new process();
p1.startinfo.filename = "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();
Tak więc na podstawie danych wprowadzonych przez użytkownika buduję wartość argumentu. Teraz mam przypadek, w którym muszę potokować wyjście p1 do innego procesu, powiedzmy grep. więc w zasadzie wypróbowałem ten
p1.startinfo.arguments = "-info | grep 1234";
co zamierzałem jest coś takiego jak xyz.exe -info | grep 1234
ale to nie wydają się działać w .NET .. I rzeczywiście może utworzyć kolejną zmienną procesową i uciekaj „grep” jako oddzielny proces ... Ale zastanawiałem się, czy jest jakikolwiek sposób, aby zrobić, jak próbować powyżej ..
Znalazłem ten artykuł na blogu, który zawiera dokładnie to pytanie: [Używanie przekierowania wyjścia potokowego w klasach Process/ProcessStartInfo ...] (http://weblogs.asp.net/justin_rogers/archive/2004/02/27/ 81370.aspx) –
Jeśli nie chcesz używać CMD, sprawdź bibliotekę [MedallionShell] (https://github.com/madelson/MedallionShell). Ułatwia to przekierowanie strumienia procesowego (i inne aspekty zarządzania procesami). – ChaseMedallion