Tôi đang cố gắng chạy một tiến trình trong C# bằng cách sử dụng lớp Process.C# chuyển hướng (đường ống) quá trình đầu ra cho quá trình khác
Process p1 = new process();
p1.startinfo.filename = "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();
Vì vậy, dựa trên đầu vào của người dùng, tôi đang tạo giá trị đối số. Bây giờ tôi có một trường hợp mà tôi phải ống đầu ra của p1 để một quá trình nói grep. vì vậy, về cơ bản tôi đã thử điều này
p1.startinfo.arguments = "-info | grep 1234";
những gì tôi dự định là một cái gì đó giống như xyz.exe -info | grep 1234
nhưng điều này dường như không làm việc trong .net .. Tôi thực sự có thể tạo ra một biến quá trình và chạy "grep" như một riêng biệt quá trình .. Nhưng tôi đã tự hỏi nếu có bất kỳ cách nào để làm như iam cố gắng trên ..
Tôi tìm thấy bài viết trên blog này bao gồm chính xác câu hỏi này: [Sử dụng chuyển hướng đầu ra đường ống trên các lớp Process/ProcessStartInfo ...] (http://weblogs.asp.net/justin_rogers/archive/2004/02/27/ 81370.aspx) –
Nếu bạn không muốn sử dụng CMD, hãy xem thư viện [MedallionShell] (https://github.com/madelson/MedallionShell). Nó làm cho quá trình chuyển hướng dòng (và các khía cạnh khác của quản lý quy trình) đơn giản hơn nhiều. – ChaseMedallion