命令行参数,解析的标准方法?

时间:2011-10-26 13:05:57

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

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

  • 选项前面可能有前面的“ - ”或“/”符号。
  • 选项可以有其他参数(没有 - 符号)
  • 选项参数直接跟随选项,有或没有空格。
  • 选项可以是单个字母或完整的单词。
  • options可以合并到一个“选项”中:-abc equals -a -b -c

(Source)

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

我理解错了吗?

2 个答案:

答案 0 :(得分:4)

在像Linux这样的系统上,有一种惯例,即全字选项使用两个破折号(例如--file),而单字母选项使用一个破折号(例如-f。)

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

此外,如果某个选项使用整个单词,则无法将其拆分为多个选项。这与您使用-file的示例有关:-file可以是一个选项,也可以是四个不同的选项(-f-i,{ {1}}和-l)。

总而言之,程序之间看起来或处理的选项有很大的不同,并且确实没有任何特定的标准。

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

答案 1 :(得分:0)

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

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

/-前缀选项的真正原因通常是解析规则,因为使用较少的代码而不是使用大代码的复杂选项来解析唯一选项前缀要容易得多。通用开发标准(例如标准使用选项)可最大限度地减少用户的混淆;)