用户完成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 作为第二个参数。
我怎么能搞清楚这一点?有什么经验吗?提前谢谢。
答案 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);