【发布时间】:2012-01-23 20:53:18
【问题描述】:
我有一个类似的问题,已经解决了here。但我不知道,问题是如何解决的。我有一个程序可以获取定义输入和输出文件的参数。从 Commend 行运行,一切正常:
D:\Tools\siftDemoV4>siftWin32.exe -display < D:\tmp\SrcPgm\image000.pbm > result.pbm
但是通过 System.Diagnostics.Process 运行,不起作用。我收到错误“无效的命令行参数:
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.Start() 后,我已经尝试写入 process.StandardInput,但是在使用调试器时,外部程序有时已经完成(HasExited==true)。
谁能解释我如何将这个特殊的““参数传递给程序?
最好的问候!
顺便说一下,我多次检查路径,它们是正确的。
【问题讨论】:
-
如果您已经阅读了其他主题,为什么不阅读answer to your problem 呢?提示:这是第一段。以及为什么
<和>不起作用在最后一个解释。 -
<之后的所有内容都不再是应用程序的参数。这些是命令行处理器的“开关”(可以这么说)。
标签: c# command-line parameters