来自C#客户端重定向文件的SSH命令
最初的Unix实现只是做了如下操作:来自C#客户端重定向文件的SSH命令,c#,redirect,ssh,sharpssh,C#,Redirect,Ssh,Sharpssh,最初的Unix实现只是做了如下操作: ssh [batchname] < [inputfilename] > [outputfilename] ssh[batchname][outputfilename] 我需要能够在运行C#编写的应用程序的windows计算机上执行同样的操作。我尝试过使用SharpSsh,它包括输入和输出流,但它们似乎不起作用 如何使用SharpSsh(或任何其他.Net库)通过管道传输输入和输出文件/流?解决了这个问题。正在运行的应用程序或SSH本身都希望c
ssh [batchname] < [inputfilename] > [outputfilename]
ssh[batchname]<[inputfilename]>[outputfilename]
我需要能够在运行C#编写的应用程序的windows计算机上执行同样的操作。我尝试过使用SharpSsh,它包括输入和输出流,但它们似乎不起作用
如何使用SharpSsh(或任何其他.Net库)通过管道传输输入和输出文件/流?解决了这个问题。正在运行的应用程序或SSH本身都希望ctrl-d发出输入结束的信号。在这一点上,可以不挂起就读取输出流。解决了这个问题。正在运行的应用程序或SSH本身都希望ctrl-d发出输入结束的信号。在这一点上,可以不挂起就读取输出流。如果其他人正在查找,请查看。它让您可以非常轻松地运行流程和管道输入/输出
wait使用var input=File.Open(“input.txt”);
等待使用var output=File.Create(“output.txt”);
等待使用var error=File.Create(“error.txt”);
var cmd=input | Cli.Wrap(“child.exe”)。带有参数(“foo bar”)|(输出,错误);
wait cmd.ExecuteAsync();
如果其他人正在查找此文件,请查看。它让您可以非常轻松地运行流程和管道输入/输出
wait使用var input=File.Open(“input.txt”);
等待使用var output=File.Create(“output.txt”);
等待使用var error=File.Create(“error.txt”);
var cmd=input | Cli.Wrap(“child.exe”)。带有参数(“foo bar”)|(输出,错误);
wait cmd.ExecuteAsync();
“它不起作用”太宽泛了。你试过调试代码吗?你有什么问题?这取决于我想做什么。一般来说,这种行为就像从未与服务器连接的流一样。我不知道输入流是否曾经向服务器获取过信息,但输出流总是关闭且不可读,或者读取将挂起的时间远远超过它应该挂起的时间(应该需要一秒或两秒,等待几分钟)。更明确地说,如果我使用SshExec.RunCommand并简单地将输入文件内容添加到命令字符串中(用空格或换行符分隔),RunCommand调用不会返回。如果我使用SshShell并写出命令和输入文件,输出流不可用或保持为空。能否请您发布一个代码片段,说明您是如何理解的?我实际上面临着同样的问题:(需要您的帮助。提前谢谢。“它不起作用”太广泛了。您是否尝试调试代码?您遇到了什么问题?这取决于我尝试执行的操作。通常情况下,该行为就像从未与服务器连接的流一样。我不知道输入流是否曾经向服务器发送过信息,但输出流总是关闭且无法读取,或者读取将挂起很长时间比它应有的时间长(应该需要一两秒钟,等待几分钟)。更明确地说,如果我使用SshExec.RunCommand并简单地将输入文件内容添加到命令字符串中(用空格或换行符分隔),RunCommand调用不会返回。如果我使用SshShell并写出命令和输入文件,则输出流不可用或保持为空。能否请您发布一段代码片段,说明您是如何理解的?我实际上面临着相同的问题:(需要你的帮助。提前谢谢。仅供参考:你可以接受自己的答案,让别人知道它的存在。仅供参考:你可以接受自己的答案,让别人知道它的存在。