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

参数用空格或者TAB进行分割。
一个字符串若被两个双引号包含,则即使其中包含空格或TAB字符也会被视为一个参数。被引起来的字符串可以嵌入参数内。
字符串中存在的双引号可以通过前置反斜杠进行转义。
反斜杠会被解释成单个字符,除非后面紧接着一个双引号。
如果偶数个反斜杠后面跟随一个双引号,每对反斜杠放一个反斜杠到参数中,双引号被解释为一个字符串界定符。
如果奇数个反斜杠后面跟随一个双引号,每对反斜杠放一个反斜杠到argv数组中,双引号则被剩下的反斜杠转义放入到argv中,而不会作文字符串界定符。
这些规则的解析工作量也是不小,存在很多的相关的程序库来帮助我们解决这个问题,以前使用过 Mono项目提供的一个控制台程序辅助包GetOptions ,最近使用CodePlex上的一个库也非常不错,推荐给大家。这个函式库为.NET 应用程序提供解析命令列参数的能力,此外还允许你能显示定制化的帮助窗口。

本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

命令行解析的规则以及Command Line Parser Library相关推荐

  1. matlab提示output,强制Matlab输出到命令行(Force Matlab output to command line)

    强制Matlab输出到命令行(Force Matlab output to command line) 我正在从Windows命令提示符运行MATLAB脚本: "C:\Program Fil ...

  2. 一个不错的命令行解析类

    原文链接:Command line parser 作者所考虑的语法是: CommandLine::=[<Key> [,<Key>]] <Key>::=<Del ...

  3. Python命令行解析:sys.argv[]函数的简介、案例应用之详细攻略

    Python命令行解析:sys.argv[]函数的简介.案例应用之详细攻略 目录 sys.argv[]函数的简介 sys.argv[]函数的案例应用 1.基础测试 2.进阶用法 3.sys.argv[ ...

  4. TF之TF flags:TF flags(命令行解析)的简介、安装、使用方法之详细攻略

    TF之TF flags:TF flags(命令行解析)的简介.安装.使用方法之详细攻略 目录 TF flags的简介 TF flags的安装 TF flags的使用方法 TF flags的简介 1.f ...

  5. python 命令行解析模块_Python命令行解析模块详解

    python2.7 怎么解析命令行输入的中文参数 本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, ...

  6. linux c 命令行解析 getopt getopt_long optarg optind opterr optopt 简介

    目录 getopt 函数 测试代码 getopt_long函数 代码示例 getopt 函数 头文件 #include<unistd.h> 定义函数 int getopt(int argc ...

  7. docker命令行解析以及如何向服务器端发送请求(docker源码学习一)

    最近在看doccker的源码,最新的master分支(估计是1.12.4,因为最新的release是1.12.3)命令行解析全部都使用了第3方的包https://github.com/spf13/co ...

  8. Go语言 命令行解析(二)

    今天我们继续讲解Go语言中命令行,当我们在解析命令行传递的参数时通常会想用最简单的方法来解析自己行用到的命令行参数,那么urfave/cli可以帮助我们快速的解析命令行参数,它是一个简单快速的命令行包 ...

  9. 一种命令行解析的新思路(Go 语言描述)

    简介: 本文通过打破大家对命令行的固有印象,对命令行的概念解构后重新梳理,开发出一种功能强大但使用极为简单的命令行解析方法.这种方法支持任意多的子命令,支持可选和必选参数,对可选参数可提供默认值,支持 ...

最新文章

  1. Linux(CentOS)升级gcc到4.8.5版本
  2. 将公用文件夹从Exchange2010迁移到 Exchange 2013
  3. SpringBoot—启动原理
  4. 22行代码AC——例题7-1除法(Division UVa 725)——解题报告
  5. 数据挖掘开源项目立项
  6. AT2339-[AGC011C]Squared Graph【黑白染色】
  7. creat-react-app 支持 less
  8. hibernate中antlr对于hql生成抽象语法树源码解析
  9. markdown mysql高亮_博客园里Markdown支持高亮显示的语言
  10. 年前的面试经历(二)
  11. 基于visual Studio2013解决C语言竞赛题之1064互质数差1验证
  12. 协同办公软件竞品分析
  13. 最全QQ盗号手法分析,全面防御QQ盗号
  14. 学计算机u盘多少g合适,U盘设定分配单元的大小多少合适
  15. html 中的版权符号 : 圆圈C
  16. java 多张jpg合成tif后避免tif文件过大的方法
  17. 浙江大学PAT_甲级_1032. Sharing (25)
  18. 经典回顾:福禄克FLUKE DTX-1800如何配合DTX-LABA测试6A,7类跳线patchcord
  19. Linux系统获取CPU温度
  20. 数据结构--三角矩阵的压缩存储

热门文章

  1. 项目中缺少maven dependencis,或者pom文件报红
  2. Sass mixin与extends、%placeholder、function
  3. TensorFlow升级1.4:Cannot remove entries from nonexistent file \lib\site-pack
  4. 在安卓JNI/NDK中使用C++11
  5. undefined reference to “boost” in Qt—Ubuntu
  6. MAC chrome浏览器 adobe flash player不是最新版本提示 的解决方案
  7. django 中 csrf问题 的解决方法
  8. Python之IPython开发实践
  9. webstom设置和monokia配色方案
  10. 零基础学习hadoop到上手工作线路指导(中级篇)