最初的Unix实现只是做了这样的事情:
ssh [batchname] < [inputfilename] > [outputfilename]
我需要能够在运行用C#编写的应用程序的Windows机器上做同样的事情。我尝试过使用SharpSsh,它包含输入和输出流,但它们似乎不起作用。
如何使用SharpSsh(或任何其他.Net库)管道输入和输出文件/流?
答案 0 :(得分:1)
想出来。运行应用程序或SSH本身都需要ctrl-d来指示输入的结束。此时,可以在不挂起的情况下读取输出流。
答案 1 :(得分:0)
如果其他人正在寻找,请查看CliWrap。它使您可以真正轻松地运行流程和管道输入/输出。
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();