引用命令行参数的字符串时遇到问题

时间:2015-04-08 16:32:55

标签: c#

我正在尝试为Process创建命令行参数。这是我编码的字符串。我将变量taskName设置为"这是一个测试"

     p.StartInfo.Arguments += " /RU " + "" + userName + "" + " /RP " + "" + domainPassword + "" + "  /TN " +
                                   "\"" + taskName + "\"" + " /TR " + "" + task.InputFileName + "" + " /ST " +
                                   "" + startTime + "" + " /SD " + "" + startDate + "";

当我运行它时,这就是我得到的/ TN。

/ TN \"这是一个测试\"

为什么我会得到反斜杠。我只是想说/ TN"这是一个测试"

3 个答案:

答案 0 :(得分:0)

这给了我正在寻找的预期结果,与你的结果没什么不同。

string taskName = "This is a test";
System.Diagnostics.Process process = new Process();
process.StartInfo.Arguments = " /TN " + "\"" + taskName + "\"";

Console.WriteLine(process.StartInfo.Arguments);

enter image description here

答案 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将显示输出:

乔说"你好"给我