2011-06-13 125 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

相關問題