一种计算机命令行参数的处理方法和装置的制作方法

文档序号:6463419阅读:105来源:国知局
专利名称:一种计算机命令行参数的处理方法和装置的制作方法
技术领域
本发明涉及计算机技术,特别是涉及一种计算机命令行参数的处理方法和 装置。
背景技术
在90年代用过计算机的人一般都知道DOS (f兹盘操作系统),DOS下的 操作方式就是命令行,命令行编译就是通过"命令"+ "文件名"来编译文件 的方式,用命令行参数执行应用程序例如copy c:\l.txt d:\ 。在计算机的c/c+十语言中,命令行参数的传递是利用main主函数进行形参 传递实现的,被定义的命令行参数位于main主函数后面的括号中,例如使 用main(int argc,char* argv[])这样的形式进4亍命令4亍参l史的定义,char* argv[] 就是一个指向指针数组,argv就是一个指针数组名,"intargc"这个定义返回 的将是参数的个数所以标记为整形(int )。命令行参数argc和argv可以换成自 己喜欢的名称,不一定必须要用argv, argc,这些形式只是习惯而已。在实现本发明方案的过程中,发现现有技术中存在如下问题对于命令行 接口程序来说,命令行参数的解析是要完成的一项繁瑣且难以复用的工作,复 杂参数的解析更是效率低下且容易出错,标准C程序的参数解析只能完成对 简单参数的解析,不能自动完成对复杂命令行参数的解析,并且解析代码与参 数紧密耦合,无法复用。发明内容本发明的目的是提供一种计算机命令行参数的处理方法和装置,解决现有技术不能自动完成对复杂命令行参数的解析的技术问题。为了实现上述目的,本发明提供了 一种计算机命令行参数的处理方法,包括如下步骤载入参数定义表,所述参数定义表中定义有多种参数类型; 载入参数匹配表,所述参数匹配表根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型; 根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析。 优选地,所述的方法,其中,在所述载入参数定义表的步骤之前,还包括设置所述参数定义表,定义所述参数类型的步骤。优选地,所述的方法,其中,所述参数类型包括, 开关型,用于定义打开或关闭特定条件的变量的命令行参数; 单输入型,用于定义为指定变量进行赋值的命令行参数; 组输入型,用于定义为指定数组进行复制的命令行参数; 组选型,用于定义从可选的参数中选择一个进行变量赋值的命令行参数; 回调型,用于定义选择是否执行指定的回调函数的命令行参数; 优选地,所述的方法,其中,所述参数类型还包括 "* "型,用于定义不带"-"提示的第"?"个命令行参数; "*"型,用于定义除去"* "型的命令行参数外,剩下的所有不带"-"提示的命令行参数。优选地,所述的方法,其中,在对所述命令行参数进行解析的步骤之后,还包括存储所述命令行参数的解析结果,在所述命令行参数再次输入后,直接调用存储的所述解析结果。优选地,所述的方法,其中,所述命令行参数为以"C/C++"代码形式表现的计算机代码。本发明的再一方面,提供一种计算机命令行参数的处理装置,包括存储单 元和解析单元;所述存储单元存储有参数定义表和参数匹配表; 所述参数定义表用于定义多种参数类型;所述参数匹配表,用于根据所述参数定义表定义的参数类型,对输入的命 令行参数进行匹配,找到所述命令行参数所对应的参数类型;所述解析单元,用于根据所述命令行参数所对应的参数类型,对所述命令 行参数进行解析。优选地,所述的处理装置,其中,所述参数定义表中的参数类型包括 开关型,用于定义打开或关闭特定条件的变量的命令行参数; 单输入型,用于定义为指定变量进行赋值的命令行参数; 组输入型,用于定义为指定数组进行复制的命令行参数; 组选型,用于定义从可选的参数中选择一个进行变量赋值的命令行参数; 回调型,用于定义选择是否执行指定的回调函数的命令行参数; "* "型,用于定义不带"-"提示的第"?"个命令行参数; "*"型,用于定义除去"* "型的命令行参数外,剩下的所有不带"-"提示的命令行参数。优选地,所述的处理装置,其中,还包括复用单元,用于,将所述命令行参数的解析结果存储在所述存储单元,并在所述命令行参数再次输入后,直接调用存储的所述解析结果。本发明实施例的技术效果在于1) 引入参数定义表的概念,对命令行参数进行了抽象分类;2) 引入参数匹配表的概念,针对不同类型的命令行参数进行解析,能高 效可靠地完成对命令行参数的自动解析,提高计算机的处理速度;3) 根据命令行参数的不同类型,对解析结果进行存储,可以复用解析结果;4) 因为有了可复用的解析结果,能进行命令参数的交互式输入,提高了 命令行接口程序的用户友好性;5) 因为有了以上四点效果,所以能简化命令行程序的编程。


图1为本发明方法实施例提供的步骤流程图; 图2为本发明方法实施例提供的装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对 具体实施例进行详细描述。本发明实施例将命令行参数抽象为七种类型,包括开关型,单输入型,组输入型,组选型,回调型,* 型及*型,各类型的具体定义如下1) 开关型打开或关闭特定条件变量,例如"list-l",其中-l可以决定list 运行时是否显示详细信息。2) 单输入型为指定变量进行赋值,例如"gcc~oa.o",其中-oa.o指定 了 gcc的输出文件名。3) 组输入型为指定数组进行复制,例如"play-fa.mp3b.mp3 ,,,其中-f a,mp3 b.mp3 c指定了 一个播放列表。4) 组选型从可选的参数中选择一个进行变量赋值,"play-m stereo",其 中—m stereo从mono, stereo, 3D中选择了 stereo模式。5) 回调型选择是否执行指定的回调函数,例如"play-c",其中-c被解 析时,指定的回调函数将被调用。6) * 型不带"-"提示的第? (1,2,3...)个参数,例如"cpa.mp3b.mp3", 其中a.mp3为承l,b.mp3为*2。7) *型除去* 型,剩下的所有不带"-"提示的参数,例如"gcca.cb.cc.c", 其中a.c b.c c.c为*型参数,指定了 gcc编译的输入文件列表,命令行参数中 只能有一个*型参数。以上七种类型仅为举例,可以根据具体需要定义不同的类型,参数的分类 类型在参数定义表中指定,参数添加在参数匹配中完成解析。图1为本发明方 法实施例提供的步骤流程图,参数的解析过程如下步骤IOI,声明参数定义表,使命令行接口程序能载入参数定义表,参数定义表中定义有不同的参数类型; 步骤102,声明参数匹配表;步骤103,所述参数匹配表根据所述参数定义表定义的参数类型,对输入 的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;步骤104,根据所述命令行参数所对应的参数类型,对所述命令行参数进 行解析。其中,步骤103的匹配和步骤104的解析过程举例如下例1:输入"list画l", "list陽2",则通过与参数定义表进行比较,发现list命令的参数"-r, 、 "-2"存在于"开关型"参数中,因此"-r、 "-2"为"开关型"参数;那么在解析的时候,根据"开关型,,参数的定义。-l可以决定list命令运行时显示详细信息,list命令是进行列表的命令,是列表结果中的每个元素都要显示详细信息,"-2"是列表结果中的每个元素不用显示详细信 白例2:输入"gcc-oa.o",则通过与参数定义表匹配,发现"-o a.o" 为 单输入型参数;那么在解析的时候,根据单输入型参数的定义,"-oa.o"指定 了 gcc命令的输出文件名。例3:输入"play—fa.mp3 b.mp3 "、 "play-fc.mp3 d.mp3 e.mp3",通过与 参数定义表匹配,发现命令play的参数"-f,存在于"组输入型,,参数中, 为组输入型参数;那么在解析的时候,-fa.mp3b.mp3指定了 play命令的一个播放文件的播 放列表,其要4番放a,mp3和b.mp3文件。而-f c.mp3 d.mp3 e.mp3指定的播放 列表则要4番;改c.mp3 、 d.mp3和e.mp3文件。例4:输入"play—m stereo",通过与参数定义表匹配,发现"-m" 为组 选型参数;那么在解析的时候,—m stereo从mono, stereo, 3D中选择了 stereo模式。 例5:输入"play-c",通过与参数定义表匹配,发现-c存在于回调型参数中,那么-c被解析时,根据回调型参数的定义,-c指定的函数将按照回调函数调用。例6:输入"cpa.mp3b.mp3",通过与参数定义表匹配,发现为* 型,* 型表示不带"-"提示的第? (1,2,3...)个参数,那么"cpa.mp3b.mp3"中的a.mp3 解析为n,Kmp3为*2。例7:输入"gcc a.c b.c c.c" 通过与参数定义表匹配,发现为*型,根据 定义,*型表示除去* 型外,剩下的所有不带"-"提示的参数,解析的时候, "gcc a.c b.c c.c,,,中a.cb.cc.c指定了 gcc编译的输入文件列表,此外,命令行参数中只能有一个*型参数。由上可知,本发明实施例对命令行参数进行了抽象分类,并引入参数定义 表和参数匹配表的概念,高效可靠地完成对命令参数的自动解析。如图2所示,对应以上方法,本发明实施例还提供了一种计算机命令行参 数的处理装置,包括存储单元201和解析单元202;所述存储单元201存储有参数定义表和参数匹配表,所述参数定义表用于 定义不同的参数类型,所述参数匹配表用于根据所述参数定义表定义的参数类 型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;所述解析单元202,用于根据所述命令行参数所对应的参数类型,对所述 命令行参数进行解析。此外,还可以进一步包括复用单元,用于,将所述命令行参数的解析结果 存储在所述存储单元,并在所述命令行参数再次输入后,直接调用存储的所述 解析结果。采用本发明实施例具有以下优势1) 引入参数定义表的概念,对命令行参数进行了抽象分类;2) 引入参数匹配表的概念,针对不同类型的命令行参数进行解析,能高 效可靠地完成对命令行参数的自动解析,提高计算机的处理速度;3) 根据不同的类型,对解析结果进行存储,可以复用解析结果;4) 因为有了可复用的解析结果,能进行命令参数的交互式输入,提高了 命令行接口程序的用户友好性;5) 能简化命令行程序的编程。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
权利要求
1. 一种计算机命令行参数的处理方法,其特征在于,包括如下步骤载入参数定义表,所述参数定义表中定义有多种参数类型;载入参数匹配表,所述参数匹配表根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析。
2. 根据权利要求1所述的方法,其特征在于,在所述载入参数定义表的 步骤之前,还包括设置所述参数定义表,定义所述参数类型的步骤。
3. 根据权利要求2所述的方法,其特征在于,所述参数类型包括 开关型,用于定义打开或关闭特定条件的变量的命令行参数; 单输入型,用于定义为指定变量进行赋值的命令行参数; 组输入型,用于定义为指定数组进行复制的命令行参数;组选型,用于定义从可选的参数中选择一个进行变量赋值的命令行参数; 回调型,用于定义选择是否执行指定的回调函数的命令行参数。
4. 根据权利要求3所述的方法,其特征在于,所述参数类型还包括 "* "型,用于定义不带"-"提示的第"?"个命令行参数;"*"型,用于定义除去"* "型的命令行参数外,剩下的所有不带"-" 提示的命令行参数。
5. 根据权利要求1、 2、 3或4所述的方法,其特征在于,在对所述命令 行参数进行解析的步骤之后,还包括存储所述命令行参数的解析结果,在所述命令行参数再次输入后,直接调 用存储的所述解析结果。
6. 根据权利要求5所述的方法,其特征在于,所述命令行参数为以"(^++" 代码形式表现的计算机代码。
7. —种计算机命令行参数的处理装置,其特征在于,包括存储单元和解析单元;所述存储单元存储有参数定义表和参数匹配表; 所述参数定义表用于定义多种参数类型;所述参数匹配表,用于根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;所述解析单元,用于根据所述命令行参数所对应的参数类型,对所述命令 行参数进行解析。
8. 根据权利要求7所述的处理装置,其特征在于,所述参数定义表中的 参数类型包括开关型,用于定义打开或关闭特定条件的变量的命令行参数; 单输入型,用于定义为指定变量进行赋值的命令行参数; 组输入型,用于定义为指定数组进行复制的命令行参数; 组选型,用于定义从可选的参数中选择一个进行变量赋值的命令行参数; 回调型,用于定义选择是否执行指定的回调函数的命令行参数; "* ,,型,用于定义不带"-"提示的第"?"个命令行参数; "*,,型,用于定义除去"* "型的命令行参数外,剩下的所有不带"-" 提示的命令行参数。
9. 根据权利要求7所述的处理装置,其特征在于,还包括复用单元,用 于,将所述命令行参数的解析结果存储在所述存储单元,并在所述命令行参数 再次输入后,直接调用存储的所述解析结果。
全文摘要
本发明提供一种计算机命令行参数的处理方法和装置,其中方法包括载入参数定义表,所述参数定义表中定义有多种参数类型;载入参数匹配表,所述参数匹配表根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析。本发明对命令行参数进行了抽象分类,并引入参数定义表和参数匹配表的概念,高效可靠地完成对命令参数的自动解析。
文档编号G06F9/45GK101271400SQ200810105639
公开日2008年9月24日 申请日期2008年4月30日 优先权日2008年4月30日
发明者尹文超, 帅 谭 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1