J'essaie d'exécuter un processus dans C# en utilisant la classe Process.C# redirige la sortie du processus (pipe) vers un autre processus
Process p1 = new process();
p1.startinfo.filename = "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();
Donc, en fonction de l'entrée de l'utilisateur, je construis la valeur de l'argument. Maintenant, j'ai un cas où je dois canaliser la sortie de p1 à un autre processus, disons grep. donc j'ai essentiellement essayé cela
p1.startinfo.arguments = "-info | grep 1234";
ce que je voulais est quelque chose comme xyz.exe -info | grep 1234
mais cela ne semble pas fonctionner en .net .. Je peux réellement créer une autre variable de processus et exécuter « grep » comme séparé processus .. Mais je me demandais s'il n'y a aucun moyen de faire comme iam essayer ci-dessus ..
J'ai trouvé cet article de blog qui couvre exactement cette question: [Utiliser la redirection de sortie canalisée sur les classes Process/ProcessStartInfo ...] (http://weblogs.asp.net/justin_rogers/archive/2004/02/27/ 81370.aspx) –
Si vous ne souhaitez pas utiliser CMD, consultez la bibliothèque [MedallionShell] (https://github.com/madelson/MedallionShell). Il rend la redirection de flux de processus (et d'autres aspects de la gestion de processus) beaucoup plus simple. – ChaseMedallion