传递用双引号括起来的参数

时间:2013-08-06 19:15:06

标签: c# command-line parameters

我已经阅读了很多这个问题的解决方案,并尝试了所有这些解决方案但找不到完成此任务的正确方法。我的代码是:

p.StartInfo.Arguments = path;

我需要将路径变量包围在“标记中,因为它是指向目录名和文件名中包含空格的文件的路径。如何在路径变量的开头和结尾附近添加”? Psudo代码将是:

p.StartInfo.Arguments = DoubleQuote +  path + DoubleQuote;

作为这种情况的后续行动 - 一旦我的.exe文件收到路径 - 路径完全遵循“\”“建议。但是,我必须将路径包含在.exe文件代码中” “”所以它也可以找到.xlsx文件,因为路径和文件名中有空格。只是想对其他任何有这种情况的人进行跟进,并想知道为什么命令行参数没问题,但是.exe文件没有找到文件 - 两个应用程序都需要用“\”“包围。

2 个答案:

答案 0 :(得分:7)

不确定您已经看到并试过了哪些解决方案但是您需要转义引号

p.StartInfo.Arguments = "\"" + path + "\"";

或者如果你想使用逐字字符串文字(使用""来逃避)

p.StartInfo.Arguments = @""" + path + """;

如果您有很多参数,您可能会发现String.Format方法更容易维护。

p.StartInfo.Arguments = string.Format(@"""{0}""", path);

答案 1 :(得分:0)

您只需将双引号字符附加到字符串的开头和结尾即可。创建双引号可以通过以下任一方式完成

  • "\""
  • @""""