Fat*_*mon 12 .net c# pipe process
我正在尝试使用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();
Run Code Online (Sandbox Code Playgroud)
所以基于用户输入我正在构建参数值.现在我有一个案例,我必须将p1的输出传递给另一个进程说grep.所以我基本上试过这个
p1.startinfo.arguments =" - info | grep 1234";
我的意图是像xyz.exe -info | grep 1234
但这似乎不适用于.net ..我实际上可以创建另一个流程变量并运行"grep"作为一个单独的进程..但我想知道是否有任何方法可以做,因为我尝试上面..
Mar*_*ark 20
更简单的方法是使用cmd作为您的过程.
Process test = new Process();
test.StartInfo.FileName = "cmd";
test.StartInfo.Arguments = @"/C ""echo testing | grep test""";
test.Start();
Run Code Online (Sandbox Code Playgroud)
您可以捕获输出或其他任何您想要的任何正常过程.这只是我构建的一个快速测试,但它可以输出测试到控制台,所以我希望这对你计划用管道做的任何其他事情都有效.如果您希望命令保持打开状态,则使用/ K而不是/ C,并且一旦进程完成,窗口将不会关闭.