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

标签 c# command-line parameters

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

p.StartInfo.Arguments = path;

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

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

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

最佳答案

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

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

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

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

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

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

关于c# - 传递用双引号括起来的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18088626/

相关文章:

c# - 如何在 C# 中将变量参数传递给内部方法

excel - 将参数从 Excel 工作簿中的单元格传递到 SQL 查询

powershell - 是否可以跨多个功能重用 'param' block ?

c# - 在 C# 中嵌入 Google map

c# - Web api 在一段时间后停止,但在我重新发布它时可以工作,但在一段时间后它又停止了

c# - TransactionScope 和 Oracle 的问题

string - 在 CMake 中如何将命令的多行输出转换为列表?

c# - 为什么在 C# 中 (++x - --x) 的答案对于 x 的每个值总是 1?为什么不是0?

linux - 替换 csv 文件中的一行?

windows - 通过 Windows 命令行使用 conda 安装 sklearn_pandas