c# - 系统.诊断.进程参数

标签 c#

如何将带有空格的参数传递给 System.Dgnostics.Process。我正在这样做:

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = exePath + @"\bin\test.exe";

string args = String.Format(@"{0}{1}{2}{3}", "-plot " ,path1, " -o ", path2);
proc.StartInfo.Arguments = args;

当path1和path2不包含空格时(假设path1 = C:\Temp\和path2 = C:\Temp\Test)那么它工作正常,但是当path1和path2包含空格时 path1 = C:\Documents and Settings\user\Desktop 和 path2 = C:\Documents and Settings\user\Desktop\New Folder),然后截断 path1 和 path2 并中止。

请让我知道执行此操作的正确方法。

谢谢, 阿什什

最佳答案

Process proc = new Process(); 
proc.EnableRaisingEvents = false; 
proc.StartInfo.FileName = Path.Combine(exePath, @"bin\test.exe");
proc.StartInfo.Arguments = String.Format(@"-plot ""{0}"" -o ""{1}""", path1, path2);

如果使用文字(不带@),您可以转义引号:

\"{0}\"

如果使用逐字字符串(带有@),您可以将引号加倍:

""{0}""

关于c# - 系统.诊断.进程参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012409/

相关文章:

c# - 我可以从另一个 AppDomain 实例化一个类型为 'dynamic' 吗?

c# - 创建动态变量名

c# - 编辑 wpf 控件模板但使用原始样式

java - 如何在 C#/Xamarin 中使用带有 Android 钥匙串(keychain)私钥的 X.509 证书?

c# - 嵌套日期范围查询过滤器 ElasticSearch NEST C#

C# Roslyn 改变注释类型

c# - Visual Studio 2010 中的重构选项在 C# 和 VB 之间有所不同

c# - WinForms.ReportViewer - 呈现的页面数

c# - 如何在 C# 中检查互联网连接是否可用

c# - 删除帐户保持不活动状态 45 天