【问题标题】:Passing argument surrounded with double quotes传递用双引号括起来的参数
【发布时间】:2013-08-06 19:15:05
【问题描述】:

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

p.StartInfo.Arguments = path;

我需要用 " 标记包围路径变量,因为它是一个文件的路径,该文件的目录名和文件名中有空格。如何在路径变量的开头和结尾放置一个 "?伪代码将是:

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

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

【问题讨论】:

    标签: c# command-line parameters


    【解决方案1】:

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

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

    或者如果您想使用逐字字符串文字(使用"" 转义)

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

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

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

    【讨论】:

    • 每个人都给了我一个很好的答案,但我必须选择一个人 - 所以选择keyboardP,因为他第一次回答。感谢大家...非常感谢!
    【解决方案2】:

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

    • "\""
    • @""""

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      相关资源
      最近更新 更多