2017-01-16 226 views
0

我有一個程序執行兩條命令:cmd命令。我使用的代碼是這樣的:執行帶參數的cmd命令

Process proc = new Process(); 
proc.StartInfo.WorkingDirectory = @"C:\OpenSSL-Win64\bin"; 
proc.StartInfo.FileName = "CMD"; 
proc.StartInfo.Arguments = "/C openssl genrsa -out ProtTest.key 2048 & openssl req -new -sha256 -key ProtTest.key -out ProtTest.csr"; //if no arguments comment this line 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardInput = true; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.StartInfo.RedirectStandardError = true; 
proc.Start(); 

的代碼工作正常,但是當第二命令被執行cmd窗口只是坐着等待用戶寫一些值,比如電子郵件地址,城市等等。

我的問題是如何將這些參數以及cmd窗口?

+0

你想允許用戶直接鍵入電子郵件和城市或向他們提供您的應用程序嗎? –

+1

如果你想從你的應用程序發送它們,你正在尋找'proc.StandardInput.Write()'。 –

+0

我希望用戶將值寫入文本框,然後我想將值發送到cmd。 –

回答

1

我想你要找的是什麼:

proc.StandardInput.WriteLine(textbox1.Text); 
proc.StandardInput.WriteLine(textbox2.Text); 

這可以讓你輸入你的數據好像你independantly運行在命令窗口中的應用程序。