我试图运行从C#使用的Process.Start(的ProcessStartInfo)的CMD线的应用;
问题是,CMD线应用程序是一个独立的MATLAB .exe和具有可选参数意味着你把它们CMD线为这样的:
app.exe "optional1" optional1value "optional2" optional2value
凡optional1value是整数或字符串等。
我们遇到的问题是,双引号不被作为“optional1”参数的一部分过去了,所以我相信cmd.exe的越来越是这样的:
app.exe optional1 optional1value optional2 optional2value
或类似的东西,这MATLAB的解析器明显得到由混淆。
我试过了:
@"""optional1"" optional1value ""optional2" optional2value"""
通过一些关于CMD行参数的双引号其他SO问题的建议,但它似乎并没有为我工作,也没有:
"\"optional1\" optional1value \"optional2\" optional2value\""
我写了一个小的C#命令行的.exe打印出它得到的参数。 如果我把在VS工程 - >调试区域的命令行参数和运行它,然后打印它们用双引号,但因为所有的逃避等。我这样做的代码时,.exe文件打印参数没有任何双引号。
我发现这篇文章吧,也许是在.NET 3.5的CMD语法分析器中的错误,但似乎无法找到一个可行的解决方案。
有没有人有什么想法?
感谢您的时间,
雨披
PS有没有办法,看看有什么CMD.EXE得到发送时的争论与的Process.Start()? 我有我的方法打开一个cmd窗口,但它会很高兴看到线的cmd.exe得到如:“APP.EXE optional1 optional1value”等。
再次感谢。