在Python中,通过将stdin=subprocess.DEVNULL
指定为subprocess.Popen
的参数,可以跳过子进程的所有“按任意键继续...”提示。但是,在C#中,我不确定如何将devnull流(Stream.Null?)输送到Process.StandardInput
。
如何在C#的子过程中跳过任意数量的“按任意键继续...”提示?
使用CliWrap,所有管道默认情况下都重定向到/dev/null
(您可以配置它们)。
因此您可以这样做:
await Cli.Wrap("child.exe").WithArguments("foo bar").ExecuteAsync();
如果要管道,则可以使用管道运算符:
await using var input = File.Open("input.txt");
await using var output = File.Create("output.txt");
await using var error = File.Create("error.txt");
var cmd = input | Cli.Wrap("child.exe").WithArguments("foo bar") | (output, error);
await cmd.ExecuteAsync();