如何在c#中的另一个应用程序中将多个字符串传递给命令行参数?

时间:2013-02-06 19:53:25

标签: c# .net visual-studio-2010

用户完成GUI后,我必须触发另一个应用程序。为了触发另一个应用程序,我必须传递一些命令行参数来启动该应用程序。假设我必须通过以下论点:

c:\ Program File \ application.exe -name文本 -cmdfile c:\ text \ open.txt

application.exe是我想传递给另一个applcation的参数。

之前,该应用程序在 Visual Studio - >中设置了这些参数。 属性 - > 调试为“ c:\ Program File \ application.exe”-name text -cmdfile c:\ text \ open.txt

据我所知,上面字符串中的每个空格都被认为是一个参数,除了双引号内的一个,所以“c:\ Program File \ application.exe”是第一个参数, -name 是第二个,文本是第三个。但是,如果我使用 ProcessStartInfo.Argument 属性,如果我设置“c:\ Program File \ application.exe” - name text -cmdfile c:\ text \ open.txt ,它首先给出错误,而且我在字符串末尾添加双引号,另一个应用程序将 c:\ Program 视为第一个参数, File \ application.exe < / em>作为第二个参数。

如何避免空格作为参数的分隔符?如何在Visual Studio - &gt;中将整个字符串作为相同的格式设置传递属性 - &gt;使用 ProcessStartInfo.Argument 调试为“ c:\ Program File \ application.exe”-name text -cmdfile c:\ text \ open.txt >财产?

  

ProcessStartInfo startInfo = new ProcessStartInfo();   startInfo.Arguments =“c:\ Program File \ application.exe” - name text   -cmdfile c:\ text \ open.txt

(误差)

如果

  

startInfo.Arguments =“c:\ Program File \ application.exe -name text   -cmdfile c:\ text \ open.txt“

c:\ Program 作为第一个参数,将 File \ application.exe 作为第二个参数。

我怎么能搞清楚这一点?有什么经验吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

你的问题有点不清楚。您想要启动application.exe,还是将其作为参数传递?

如果您正在启动它,您可以使用:

var startInfo = new ProcessStartInfo(@"c:\Program File\application.exe");
startInfo.Arguments = @"-name text -cmdfile c:\text\open.txt";
Process.Start(startInfo);

如果您尝试启动另一个流程,并希望将application.exe作为参数传递给其他参数,您可以尝试:

var startInfo = new ProcessStartInfo("application2.exe");
startInfo.Arguments = @"""c:\Program File\application.exe"" -name text -cmdfile c:\text\open.txt";
Process.Start(startInfo);