0
我有一個可執行文件(購買的工具),它接受它自己的腳本語言形式。我想用我們自己的代碼包裝該可執行文件以改進功能。如何通過標準輸入將腳本通過標準輸入作爲參數傳遞給可執行文件
除了創建臨時腳本文件並將其作爲參數傳遞外,是否有一種可接受的方式在C#中執行此操作?
目前我想是這樣的:
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = "PathToExe";
psi.RedirectStandardInput = true;
using (System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi))
{
using (System.IO.StreamWriter stdin = p.StandardInput)
{
stdin.Write("script line one");
stdin.Write("script line two");
stdin.Flush();
}
p.WaitForExit(10000);
}
任何幫助是非常感謝!
代碼是對的 - 你可能想說明什麼是代碼中的問題......請注意,如果工具打印任何需要讀取輸出的內容,否則它將簡單地「掛起」,等待輸出消耗。 –
我會盡力實現閱讀部分。現在的問題是沒有任何反應。如果我從命令行(使用物理腳本)運行相同的命令,它將處理命令並輸出文件。從項目它將運行並結束,沒有創建文件。腳本中的命令與我通過標準輸入的命令是相同的。 – atatko
注意:爲了簡化調試,考慮構建簡單地讀取輸入和寫入輸出(或文件)並使用它來代替「工具」的測試exe。 –