来自C#客户端重定向文件的SSH命令

时间:2011-01-19 00:36:22

标签: c# redirect ssh sharpssh

最初的Unix实现只是做了这样的事情:

ssh [batchname] < [inputfilename] > [outputfilename]

我需要能够在运行用C#编写的应用程序的Windows机器上做同样的事情。我尝试过使用SharpSsh,它包含输入和输出流,但它们似乎不起作用。

如何使用SharpSsh(或任何其他.Net库)管道输入和输出文件/流?

2 个答案:

答案 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();