【问题标题】:Command line parameters, standard aproach to parse?命令行参数,解析的标准方法?
【发布时间】:2011-12-15 17:22:18
【问题描述】:

我一直在阅读一些关于程序如何处理命令行参数的内容。但信息似乎“不完整”,我读过的东西:

  • 选项前面可能有一个“-”或“/”符号。
  • 选项可以有额外的参数(不带 - 号)
  • 选项参数直接跟在选项后面,带或不带空格。
  • 选项可以是单个字母或完整的单词。
  • 选项可以合并到一个“选项”中:-abc 等于 -a -b -c

(Source)

现在我真的很想知道:你给什么样的选项加上“-”号,哪些没有。 此外,将选项合并为 1 似乎与全字选项不兼容? “-file”可以是一个完整的单词,但也可能表示“-f”、“-i”、“-l”、“-e”、4 个不同的开关。甚至: "-f" 和 "ile" 作为 option_argument。

我理解错了吗?

【问题讨论】:

标签: windows command-line command-line-arguments


【解决方案1】:

在 Linux 等系统上,按照惯例,全词选项使用两个破折号(例如 --file),而单字母选项使用单个破折号(例如 -f。)

使用斜线引入选项来自旧的 DOS,并保留在 Windows 中。

另外,如果一个选项使用了一个完整的单词,它不能被分成几个选项。这是关于您使用-file 的示例:-file 可以是一个选项,也可以是四个不同 选项(-f-i-l-e)。

总而言之,选项的外观或处理方式在程序之间存在很大差异,并且确实没有任何具体标准。

我建议你找到一些你喜欢的方式,然后使用它。

【讨论】:

  • 同意上述观点,另外您可以使用您希望支持的操作系统的选项约定。祝你好运。
  • 好吧,我很难找到适用于 Windows 的选项约定。我在 Windows 上没有看到太多“//”或“--”。我真的很想知道组合选项是否真的在 Windows 中完成过。
  • @paul23 现在越来越多的人使用 Git-for-Windows,尤其是使用 Bash-on-Windows(mingw32、mingw64 或 Windows 10 的 Linux 子系统)我看到了更多的 Windows 命令行程序通过公约。我还建议使用--- 而不是/ 作为命令行标志,以防您需要在程序中添加Linux 或DNX 支持。
【解决方案2】:

对于选项/参数/参数等没有 Windows 标准。

选项是根据开发人员的理解开发的,以便他们轻松解释传入的信息。

/- 前缀选项的真正原因通常是为了解析规则,因为用更少的代码解析唯一的选项前缀比用大量代码解析复杂的选项要容易得多。通用开发标准(例如标准使用选项)最大限度地减少了用户的困惑;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 2021-11-03
    • 2012-01-26
    相关资源
    最近更新 更多