我正在尝试为Process创建命令行参数。这是我编码的字符串。我将变量taskName设置为"这是一个测试"
p.StartInfo.Arguments += " /RU " + "" + userName + "" + " /RP " + "" + domainPassword + "" + " /TN " +
"\"" + taskName + "\"" + " /TR " + "" + task.InputFileName + "" + " /ST " +
"" + startTime + "" + " /SD " + "" + startDate + "";
当我运行它时,这就是我得到的/ TN。
/ TN \"这是一个测试\"
为什么我会得到反斜杠。我只是想说/ TN"这是一个测试"
答案 0 :(得分:0)
这给了我正在寻找的预期结果,与你的结果没什么不同。
string taskName = "This is a test";
System.Diagnostics.Process process = new Process();
process.StartInfo.Arguments = " /TN " + "\"" + taskName + "\"";
Console.WriteLine(process.StartInfo.Arguments);
答案 1 :(得分:0)
因为TaskName中有空格,所以需要放置"在它们周围,以便命令将它们视为一个参数,而不是那么多(4对于这是一个测试)
嵌入"在C#字符串中,您可以使用:
来转义它Console.WriteLine("output: \"");
output: "
如果您尝试:
Console.WriteLine(""");
您会收到语法错误,因为第二个"关闭第一个,第三个"打开一个没有关闭的新装置。
答案 2 :(得分:0)
您可以尝试使用c#的字符串文字,请在此处查看: https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
e.g。
string hello = @" World说""你好""给我";
如果这个打印hello变量if将显示输出:
乔说"你好"给我