将参数传递给来自C#进程的shell脚本
我困住了很多天的问题。将参数传递给来自C#进程的shell脚本
我连接到一个Linux机器,想要运行一些脚本并收回生成的文件。
步骤是 1)连接 2)运行一些脚本(这是交互性和需要输入在某些点) 3)获得作为结果生成的文件。
1)我通过plink.exe(putty.exe的命令行版本)连接到linux盒子,这一步是成功的。
2)我能够运行脚本,但是当脚本运行时它需要一些输入,我无法弄清楚如何将这些输入传递给脚本。当脚本没有完成时程序挂起会发生什么。
这些输入是固定的,并且在某些值之间有所不同,我可以将这些值硬编码到应用程序/程序中。
请帮我做这件事。 在此先感谢 -Akash
您可以使用此代码
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "YourFile.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "";//Arguments should be here
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
可以使用exeProcess.StandardOutput.ReadToEnd();得到结果
嗨纳维德,感谢您的答复。我已经尝试过这种方法,但它不起作用。在start.Info.Arguments中,我已经传递了在连接时使用的参数。 – Akash 2011-06-13 12:21:27
什么是你的问题 – 2011-06-13 12:25:23
我用这个参数=“plink mysession echo hello,world”;和结果得到你好,世界 – 2011-06-13 12:30:17
如果plink不成功,您需要首先解决。您能否给我们提供更多信息 - 错误,您如何致电plink,您如何设置您的SSH服务器? – Rup 2011-06-13 10:50:10
在bash shell上,我们的运行像$ scriptname 所以看看你的plink是否有这样的参数传递API支持 –
Zenwalker
2011-06-13 10:53:15
嗨Rup,Plink连接工作正常。我能够连接到服务器并运行命令。早些时候我们在哪里使用腻子。 – Akash 2011-06-13 11:18:36