如何将带有空格的参数传递给 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/