試圖從一個文件中的數據通過在C#中的CMD行參數和運行到問題C#啓動過程參數傳遞數據
ProcessStartInfo startInfo1 = new ProcessStartInfo();
startInfo1.FileName = @"myexe.exe";
startInfo1.UseShellExecute = false;
startInfo1.RedirectStandardOutput = true;
startInfo1.WindowStyle = ProcessWindowStyle.Hidden;
startInfo1.WorkingDirectory = @"C:\myfolder\";
startInfo1.Arguments = "-cmd1 x -cmd2 y < c:\\yesfile.txt";
問題與< C:\ yesfile.txt ..
當我調試並抓住.Arguments並從cmd行執行,工作正常。從代碼運行,我得到
Invalid command line parameters: <
搜索周圍,我無法找到從代碼中執行此操作(傳入數據)的方式。我正在調用的exe不會將「y」作爲cmd行arg,因此我必須從文件中將它傳入,以便像這樣自動運行它。
更新:如何獲得STD輸入,並通過在AY(基於答案) - 確保你RedirectStandardInput = true;
以及
StreamWriter inputWriter = myProcess.StandardInput;
inputWriter.Write("y");
inputWriter.Flush();
inputWriter.Close();
不應該'startInfo1.UseShellExecute = true的小溪種子的
Process.StandardInput
? '<, >,|'由shell(cmd)處理。 – khachik 2011-05-24 19:41:57試過 - Process對象必須將UseShellExecute屬性設置爲false,以便 重定向IO流。我也轉向重定向輸入/輸出,並嘗試,它似乎也沒有工作。 – ScaleOvenStove 2011-05-24 19:55:58