`
chong_zh
  • 浏览: 70129 次
  • 来自: 杭州
社区版块
存档分类
最新评论

解析命令行参数的两种方式

 
阅读更多
方式1
最Naive的实现,即按照参数的输入顺序进行依次解析,例如:
	private void parseArguments(String[] args)
	{
		dbIP = args[0];
		dbName = args[1];
		threadNo = Integer.parseInt(args[2]);
		timeout = Integer.parseInt(args[3]);
	}


这种方式比较简单直接,对于许多后台任务类程序的参数配置,如果参数数量不是很多,可以作为首先解决方案。


方式2
已经是一种比较Comprehensive的解决方案,已经可以满足绝大多数use case,提供友好的用户界面。

这种方式要求用户用以下参数来配置程序的命令行参数:
<YOUR COMMAND> -arg1Name arg1Value -arg2Name arg2Value -arg3Name argsValue ...


这种命令行参数的解析可以用以下方法:
		
for(int i = 0; i < args.length; i++)
{
	if(args[i].equals("-arg1Name"))
	{
		prepareArg1(args[++i]);
	}
	else if(args[i].equals("-arg2Name"))
	{
		prepareArg1(args[++i]);
	}
	else if(args[i].equals("-arg3Name"))
	{
		prepareArg1(args[++i]);
	}
	... ...
	else
	{
		printError();
		printUsage();
	}
}


分享到:
评论

相关推荐

    Python命令行解析模块详解

    这个模块可以帮助脚本解析命令行参数,一般是sys.argv[1:]。它遵循着Unix的getopt()函数相同的约定(用-/–指定命令参数)。这个模块提供两个函数(getopt.getopt()/getopt.gnu_getopt())和一个参数异常(getopt....

    C++命令行解析包gflags的使用教程

    配置参数分开还是集中管理没有严格的约束,关键要看项目里的统一规范,只是,gflags 可以支持这两种方式,允许用户更加灵活的使用。 当将参数分布到各个源码文件中时,如果定义了相同的参数,那么在编译的时候会直接...

    gflags-2.1.1.zip

    写服务程序时,如果需要提供命令行参数。传统的方法是手工解析argv参数,或者使用getopt函数。两种方法都比较费劲。使用Google gflags可以大大简化命令行参数处理。

    CommandLineUtils:.NET的命令行解析和实用程序

    CommandLineUtils 该项目可帮助您使用.NET创建命令行应用程序。 它简化了在命令行上提供的参数解析,验证用户输入以及生成... 使用此API的主要方法有两种,即使用构建器模式和属性。属性API using System ;using McMas

    doggo:人类的命令行DNS客户端。 用Golang写

    狗狗 :dog_face: 人类的命令行DNS客户端 ... 支持ndot和来自resolv.conf或命令行参数的搜索配置。 一次支持多个解析器。 支持IPv4和IPv6两种。 安装 二进位 您可以从“部分获取适用于Linux,MacOS和Windows的最新二

    word2vec_commented:原始word2vec C实现的注释版本(但未更改)

    word2vec_commented 此项目是Google已发布的的的功能不变的版本,但其中包含源注释。 如果您不熟悉word2vec,建议 先阅读本 。 我的重点是在word2vec.c中用于培训的代码: 我用否定采样评论了skip-... 解析命令行参数

    Postman-win64-8.12.5 下载 win安装包

    运行器则主要为集合生成测试结果,支持界面和命令行两种方式。 此外,Postman还提供了多种常用类型的接口请求和响应数据的解析功能,以及批量执行接口请求、日志调试、断言、变量等众多功能,帮助我们更好地进行...

    Python 使用 environs 库定义环境变量的方法

    这些参数一般情况来说,可以有两种设置方法,一种是通过命令行参数,一种是通过环境变量。二者的适用范围不同,在不同的场景下我们可以选用更方便的方式来实现参数的设置。 本节我们以 Python 项目为例,说说环境...

    旧版本postman7.36.1 64位版本下载

    运行器则主要为集合生成测试结果,支持界面和命令行两种方式。 此外,Postman还提供了多种常用类型的接口请求和响应数据的解析功能,以及批量执行接口请求、日志调试、断言、变量等众多功能,帮助我们更好地进行...

    commandline_arguments

    查看两种处理控制台应用程序的命令行参数的方法手动解析system.commandline.dragonfruit

    eval.cpp:C ++中的基本数学解析器(仍在进行中,实际上是针对另一个项目;我最终使它比预期的更完整)

    它可以通过两种方式之一运行:命令行方式和交互方式。 如果检测到任何参数,它将以命令行方式运行,将所有参数视为计算器。 可以像使用任何其他命令一样通过管道传输此输出。 $ eval-test 1 + 2 3 $ eva

    pm-scripts:一个命令行工具,允许用户在 Gnosis 之上创建和解决预测市场

    有两种使用库的方法:使用预定义的 npm 脚本(部署、解析)或使用 node.js 执行 lib/main.js 并传递参数。 如果使用第一种方式,库将在脚本执行之前编译,但如果您更喜欢第二种方式,则必须编译库: 使用预定义的...

    C语言中的链接编写教程

     静态链接器以一组可重定位目标文件和命令行参数作为输入,生成一个完全链接的可以加载和运行的可执行目标文件作为输出.  静态链接器主要完成两个任务:  1&gt;符号解析:目标文件定义和引用符号.符号解析的目的在于将...

    找质数代码matlab-shootout:电脑语言大战

    getopt-从命令行参数解析选项。 素数-计算前200个素数。 missing_numbers-在两个文件中查找丢失的号码。 revbits-二进制数字的反向位。 revstring-反转字符串。 sort-对文件中的行进行排序。 strcomb-生成“字符串”...

    gdbmi-parser:将来自GDBMI的机器可接收的输出解析为JS对象

    它可以在两种模式下运行: output和lines (默认)。 在output模式下,它希望看到整个GDB / MI事务,从0或更多位的调试输出开始,然后是结果,然后在(gdb)提示符下以尾随换行符回退。 JSON格式的版本将被写入stdout...

    newrelic-entity-cmdb-ci-sync:一组实用程序,用于促进ServiceNow CMDB CI元数据与新的遗留实体(标签)的同步

    新的遗物实体CMDB CI同步 该项目提供了一套有用的机制,可将New Relic中的Entity标签与实体元数据的其他来源进行同步。...服务的配置仅限于命令行参数和全面的配置文件。 两种来源的选项概述如下。 配置文件格式

    x-scan-v3.3-cn

    X-scan 安全焦点出品的国内很优秀的扫描工具,采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能,提供了图形界面和命令行两种操作方式。 流光 国人的骄傲,由高级程序员小榕编写的一款强悍的...

    EDFA单程增益计算器:光纤放大器增益计算器(解析解决方案)-matlab开发

    使用它来生成两种类型的图之一: 1. 绘制不同光纤长度(在单个波长下)的增益与泵浦功率的关系图2. 绘制不同泵浦功率(一根或多根光纤长度)的增益与波长的关系图 还可用于计算激光器的单程增益,从而预测激光所需...

    winrar3.7 Beta8

    &lt;br&gt; Windows 进度条仅有两种颜色, 所以他们不能指示当前的压缩率。但是现在压缩 率显示在一个单独的行中; &lt;br&gt; e) "模式..." 按钮移到窗口的底部。 &lt;br&gt; 5. GUI 自解压模块支持下列命令开关: &lt;br&gt;...

Global site tag (gtag.js) - Google Analytics