1

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

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

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

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

4

2 回答 2

1

弄清楚了。正在运行的应用程序或 SSH 本身都需要一个 ctrl-d 来表示输入的结束。此时,可以读取输出流而无需挂起。

于 2011-01-19T23:02:46.903 回答
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();
于 2020-04-15T16:44:40.533 回答