命令行解析的规则以及Command Line Parser Library

来源:互联网 发布:mac java环境变量 编辑:程序博客网 时间:2024/05/09 16:40

编写命令行程序的时候,难免需要处理命令行解析的规则,MSDN的文章如下:http://msdn2.microsoft.com/en-us/library/aa243471.aspx:

  • 参数用空格或者TAB进行分割。
  • 一个字符串若被两个双引号包含,则即使其中包含空格或TAB字符也会被视为一个参数。被引起来的字符串可以嵌入参数内。
  • 字符串中存在的双引号可以通过前置反斜杠进行转义。
  • 反斜杠会被解释成单个字符,除非后面紧接着一个双引号。
  • 如果偶数个反斜杠后面跟随一个双引号,每对反斜杠放一个反斜杠到参数中,双引号被解释为一个字符串界定符。
  • 如果奇数个反斜杠后面跟随一个双引号,每对反斜杠放一个反斜杠到argv数组中,双引号则被剩下的反斜杠转义放入到argv中,而不会作文字符串界定符。

这些规则的解析工作量也是不小,存在很多的相关的程序库来帮助我们解决这个问题,以前使用过 Mono项目提供的一个控制台程序辅助包GetOptions ,最近使用CodePlex上的一个库也非常不错,推荐给大家。这个函式库为.NET 应用程序提供解析命令列参数的能力,此外还允许你能显示定制化的帮助窗口。

项目地址:Command Line Parser Library

原创粉丝点击