我遇到類似的問題,因爲已經解決here。但我無法弄清楚,問題是如何解決的。我有一個程序,它可以獲取輸入和輸出文件的參數。從Commend行運行,所有工作正常:將C#中的命令行參數傳遞給外部exe
D:\Tools\siftDemoV4>siftWin32.exe -display <D:\tmp\SrcPgm\image000.pbm> result.pbm
但通過System.Diagnostics.Process運行,不起作用。我收到錯誤「無效的命令行參數:<」,並在此之後發生System.InvalidOperationException。
var process = new Process()
{
StartInfo =
{
Arguments = string.Format(@"-display < {0} > {1}", configuration.Source,
configuration.Destination),
FileName = configuration.PathToExternalSift,
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
ErrorDialog = false,
}
};
process.EnableRaisingEvents = true;
process.Exited += OnProcessExited;
process.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived);
process.ErrorDataReceived += new DataReceivedEventHandler(process_ErrorDataReceived);
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
我已經嘗試過寫process.StandardInput我打電話的Process.Start(後),但使用調試器時,外部程序是一段已經結束(HasExited ==真)。
任何人都可以解釋我可以如何將這個特殊的「<」「>」參數傳遞給程序嗎?
最好的問候!
順便說一下,我檢查了多次路徑,他們是正確的。
如果您已經閱讀其他線程,你爲什麼不讀[回答您的問題(http://stackoverflow.com/a/850856/880802)呢?提示:這是第一段。爲什麼'<' and '>'不起作用在最後一個解釋。 – Nuffin
您的'<'之後的所有內容不再是您的應用程序的參數。那些是命令行處理器的「開關」(可以這麼說)。 – user7116
[在使用System.Diagnostics.Process的命令行上的文件中管道]的可能重複(http://stackoverflow.com/questions/850802/piping-in-a--file-on-the-command-line-使用系統診斷進程) –