我有以下要运行某些应用程序的参数列表。
"C:\Release one" "My Manager" 321
我知道我应该把它们归为ProcessStartInfo
Arguments
财产。
但是我该如何正确地编写它们,因为它们在字符串中有空格, " My Manager"
?
尝试:
process.StartInfo.Arguments = "\"My Manager\" 321";
用这个:
System.Diagnostics.Process.Start("something.exe","arg_1"+" "+"arg_2"+" "+"arg_3"+" ");
您需要将它们放在那里,用引号括起来。
所以代码可能看起来像
Process.Start("myexe.exe","\"My stuff\" "+myarg);
尝试...
"\"C:\\Release one\""
"\"My Manager\""
321
我没有在您的特定情况下尝试过,但这是将双引号作为字符串的一部分包含在内的标准方法。
转义 " 和 \
例子:
Process p = new Process();
p.StartInfo.FileName = "C:\\Release one";
p.StartInfo.Arguments = "\"My Manager\" 321";
p.Start();
我正在使用这个方法来获取 CorrectaArgumentvalue
public static string GetArgumentValue(string arg)
{
if (arg.Contains(" "))
return string.Format("\"{0}\"", arg);
return arg;
}
例子:
process.StartInfo.Arguments = string.Format("{0} {1} {2}", GetArgumentValue(@"C:\Release one"), GetArgumentValue("My Manager"), 321);