gpt4 book ai didi

c#重定向(管道)进程输出到另一个进程

转载 作者:可可西里 更新时间:2023-11-01 08:20:16 28 4
gpt4 key购买 nike

我正在尝试使用 Process 类在 C# 中运行一个进程。

Process p1  = new process();
p1.startinfo.filename = "xyz.exe";
p1.startinfo.arguments = //i am building it based on user's input.
p1.start();

因此,基于用户输入,我正在构建参数值。现在我有一个案例,我必须将 p1 的输出通过管道传递给另一个进程,比如 grep。所以我基本上试过了

p1.startinfo.arguments = "-info |grep 1234";

我想要的是 xyz.exe -info|grep 1234 之类的东西

但这在 .net 中似乎不起作用。我实际上可以创建另一个进程变量并将“grep”作为一个单独的进程运行。但我想知道是否有任何方法可以像我在上面尝试的那样..

最佳答案

更简单的方法是只使用 cmd 作为您的进程。

Process test = new Process();
test.StartInfo.FileName = "cmd";
test.StartInfo.Arguments = @"/C ""echo testing | grep test""";
test.Start();

然后您可以像任何正常过程一样捕获输出或您想要的任何其他内容。这只是我构建的一个快速测试,但它可以将测试输出到控制台,因此我希望这适用于您计划使用管道进行的任何其他操作。如果您希望命令保持打开状态,请使用/K 而不是/C,并且该过程完成后窗口将不会关闭。

关于c#重定向(管道)进程输出到另一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1290747/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com