Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 命令行参数,要解析的标准aproach?_Windows_Command Line_Command Line Arguments - Fatal编程技术网

Windows 命令行参数,要解析的标准aproach?

Windows 命令行参数,要解析的标准aproach?,windows,command-line,command-line-arguments,Windows,Command Line,Command Line Arguments,我一直在读一些关于程序如何处理命令行参数的书。但我读到的信息似乎“不完整”: 选项前面可能有一个“-”或“/”符号 选项可以有其他参数(不带-号) 选项参数直接跟随选项,带空格或不带空格 选项可以是单个字母或完整单词 选项可以合并到单个“选项”中:-abc等于-a-b-c 现在我真的很想知道:你给了什么样的选项一个“-”号,而不是。 此外,将选项合并为1似乎与完整单词选项不兼容?“-file”可以是一个完整的单词,但它也可能表示“-f”、“-i”、“-l”、“-e”、4个不同的开关。甚至:

我一直在读一些关于程序如何处理命令行参数的书。但我读到的信息似乎“不完整”:

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

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


我理解错了吗?

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

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

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

总而言之,选项的外观或处理方式在不同的程序之间有很大的不同,并且实际上没有任何特定的标准


我建议您找到您喜欢的方法,然后使用它。

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

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


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

同意上面的说法,并补充说,您对希望支持的操作系统使用选项约定。祝你好运。我很难找到windows的选项约定。。我没有在windows上看到太多“/”或“-”。我真的很想知道在windows中是否真的进行过组合选项。@23现在越来越多的人使用Git for windows,特别是在windows上使用Bash(mingw32、mingw64或windows 10的Linux子系统),我看到越来越多的windows命令行程序采用这种约定。我还建议使用
-
-
而不是
/
作为命令行标志,以防您需要向程序添加Linux或DNX支持。另请参见:,特别是来自TokenMacGuy的注释。