【问题标题】:(How) can you pass whitespace as a command line argument in C#?(如何)你可以在 C# 中将空格作为命令行参数传递吗?
【发布时间】:2013-10-23 13:29:16
【问题描述】:

是否可以将空格作为命令行参数传递给 C# 程序?

我正在编写一个解析文本文档的脚本,并希望允许用户指定自己的分隔符,而不是硬编码。

但是,如果分隔符是一个空格,那么无论是否用引号括起来,程序都会将其视为参数。

【问题讨论】:

标签: c# command-line-arguments


【解决方案1】:

Environment.CommandLine 将为您提供完整的命令行,包括任何空格。尽管我认为您的用户传递制表符或换行符会很棘手。我建议让他们将字符代码传递给分隔符。

【讨论】:

    【解决方案2】:

    这可能会有所帮助:

    Escape command line arguments in c#

    根据其他一些类似问题的说法,使用正则表达式似乎是要走的路。

    (恐怕没有真正做过多少C#,只是在主页上看到了这个)

    【讨论】:

      【解决方案3】:

      你可以传入带引号的空格“” 例如

      FileParsing.exe arg1 " " arg3 "一些其他的 arg"

      【讨论】:

      • 这给了我一个 IndexOutOfRangeException - 即它认为它只有 3 个参数,而不是 4 个。(我明确计算参数,以便在用户输入缺少某些内容时向用户提供反馈,它肯定有问题用“”。)
      • 它在这里为我工作。我在 Windows 7 上运行标准 cmd.exe
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 2016-01-28
      • 2015-02-20
      • 2010-12-01
      • 2020-02-22
      • 1970-01-01
      相关资源
      最近更新 更多