2011-06-13 94 views
1

我困住了很多天的问题。将参数传递给来自C#进程的shell脚本

我连接到一个Linux机器,想要运行一些脚本并收回生成的文件。

步骤是 1)连接 2)运行一些脚本(这是交互性和需要输入在某些点) 3)获得作为结果生成的文件。

1)我通过plink.exe(putty.exe的命令行版本)连接到linux盒子,这一步是成功的。

2)我能够运行脚本,但是当脚本运行时它需要一些输入,我无法弄清楚如何将这些输入传递给脚本。当脚本没有完成时程序挂起会发生什么。

这些输入是固定的,并且在某些值之间有所不同,我可以将这些值硬编码到应用程序/程序中。

请帮我做这件事。 在此先感谢 -Akash

+1

如果plink不成功,您需要首先解决。您能否给我们提供更多信息 - 错误,您如何致电plink,您如何设置您的SSH服务器? – Rup 2011-06-13 10:50:10

+0

在bash shell上,我们的运行像$ scriptname 所以看看你的plink是否有这样的参数传递API支持 – Zenwalker 2011-06-13 10:53:15

+0

嗨Rup,Plink连接工作正常。我能够连接到服务器并运行命令。早些时候我们在哪里使用腻子。 – Akash 2011-06-13 11:18:36

回答

1

您可以使用此代码

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();得到结果

+0

嗨纳维德,感谢您的答复。我已经尝试过这种方法,但它不起作用。在start.Info.Arguments中,我已经传递了在连接时使用的参数。 – Akash 2011-06-13 12:21:27

+0

什么是你的问题 – 2011-06-13 12:25:23

+0

我用这个参数=“plink mysession echo hello,world”;和结果得到你好,世界 – 2011-06-13 12:30:17

相关问题