CN101271400B - 一种计算机命令行参数的处理方法和装置 - Google Patents

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

Info

Publication number
CN101271400B
CN101271400B CN2008101056390A CN200810105639A CN101271400B CN 101271400 B CN101271400 B CN 101271400B CN 2008101056390 A CN2008101056390 A CN 2008101056390A CN 200810105639 A CN200810105639 A CN 200810105639A CN 101271400 B CN101271400 B CN 101271400B
Authority
CN
China
Prior art keywords
parameter
command line
type
line parameter
definition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008101056390A
Other languages
English (en)
Other versions
CN101271400A (zh
Inventor
尹文超
谭帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Huayuxun Technology Co ltd
Original Assignee
Wuxi Vimicro Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Vimicro Corp filed Critical Wuxi Vimicro Corp
Priority to CN2008101056390A priority Critical patent/CN101271400B/zh
Publication of CN101271400A publication Critical patent/CN101271400A/zh
Application granted granted Critical
Publication of CN101271400B publication Critical patent/CN101271400B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种计算机命令行参数的处理方法和装置,其中方法包括:载入参数定义表,所述参数定义表中定义有多种参数类型;载入参数匹配表,所述参数匹配表根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析。本发明对命令行参数进行了抽象分类,并引入参数定义表和参数匹配表的概念,高效可靠地完成对命令参数的自动解析。

Description

一种计算机命令行参数的处理方法和装置
技术领域
本发明涉及计算机技术,特别是涉及一种计算机命令行参数的处理方法和装置。
背景技术
在90年代用过计算机的人一般都知道DOS(磁盘操作系统),DOS下的操作方式就是命令行,命令行编译就是通过“命令”+“文件名”来编译文件的方式,用命令行参数执行应用程序例如:copy c:\1.txt d:\。
在计算机的c/c++语言中,命令行参数的传递是利用main主函数进行形参传递实现的,被定义的命令行参数位于main主函数后面的括号中,例如:使用main(int argc,char*argv[])这样的形式进行命令行参数的定义,char*argv[]就是一个指向指针数组,argv就是一个指针数组名,“int argc”这个定义返回的将是参数的个数所以标记为整形(int)。命令行参数argc和argv可以换成自己喜欢的名称,不一定必须要用argv,argc,这些形式只是习惯而已。
在实现本发明方案的过程中,发现现有技术中存在如下问题:对于命令行接口程序来说,命令行参数的解析是要完成的一项繁琐且难以复用的工作,复杂参数的解析更是效率低下且容易出错,标准C程序的参数解析只能完成对简单参数的解析,不能自动完成对复杂命令行参数的解析,并且解析代码与参数紧密耦合,无法复用。
发明内容
本发明的目的是提供一种计算机命令行参数的处理方法和装置,解决现有技术不能自动完成对复杂命令行参数的解析的技术问题。
为了实现上述目的,本发明提供了一种计算机命令行参数的处理方法,包括如下步骤:
载入参数定义表,所述参数定义表中定义有多种参数类型;
载入参数匹配表,所述参数匹配表根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;
根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析。
优选地,所述的方法,其中,在所述载入参数定义表的步骤之前,还包括设置所述参数定义表,定义所述参数类型的步骤。
优选地,所述的方法,其中,所述参数类型包括:
开关型,用于定义打开或关闭特定条件的变量的命令行参数;
单输入型,用于定义为指定变量进行赋值的命令行参数;
组输入型,用于定义为指定数组进行复制的命令行参数;
组选型,用于定义从可选的参数中选择一个进行变量赋值的命令行参数;
回调型,用于定义选择是否执行指定的回调函数的命令行参数;
优选地,所述的方法,其中,所述参数类型还包括:
“*?”型,用于定义不带“-”提示的第“?”个命令行参数;
“*”型,用于定义除去“*?”型的命令行参数外,剩下的所有不带“-”提示的命令行参数。
优选地,所述的方法,其中,在对所述命令行参数进行解析的步骤之后,还包括:存储所述命令行参数的解析结果,在所述命令行参数再次输入后,直接调用存储的所述解析结果。
优选地,所述的方法,其中,所述命令行参数为以“c/c++”代码形式表现的计算机代码。
本发明的再一方面,提供一种计算机命令行参数的处理装置,包括存储单元和解析单元;
所述存储单元存储有参数定义表和参数匹配表;
所述参数定义表用于定义多种参数类型;
所述参数匹配表,用于根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;
所述解析单元,用于根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析。
优选地,所述的处理装置,其中,所述参数定义表中的参数类型包括:
开关型,用于定义打开或关闭特定条件的变量的命令行参数;
单输入型,用于定义为指定变量进行赋值的命令行参数;
组输入型,用于定义为指定数组进行复制的命令行参数;
组选型,用于定义从可选的参数中选择一个进行变量赋值的命令行参数;
回调型,用于定义选择是否执行指定的回调函数的命令行参数;
“*?”型,用于定义不带“-”提示的第“?”个命令行参数;
“*”型,用于定义除去“*?”型的命令行参数外,剩下的所有不带“-”提示的命令行参数。
优选地,所述的处理装置,其中,还包括复用单元,用于,将所述命令行参数的解析结果存储在所述存储单元,并在所述命令行参数再次输入后,直接调用存储的所述解析结果。
本发明实施例的技术效果在于:
1)引入参数定义表的概念,对命令行参数进行了抽象分类;
2)引入参数匹配表的概念,针对不同类型的命令行参数进行解析,能高效可靠地完成对命令行参数的自动解析,提高计算机的处理速度;
3)根据命令行参数的不同类型,对解析结果进行存储,可以复用解析结果;
4)因为有了可复用的解析结果,能进行命令参数的交互式输入,提高了命令行接口程序的用户友好性;
5)因为有了以上四点效果,所以能简化命令行程序的编程。
附图说明
图1为本发明方法实施例提供的步骤流程图;
图2为本发明方法实施例提供的装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对具体实施例进行详细描述。
本发明实施例将命令行参数抽象为七种类型,包括开关型,单输入型,组输入型,组选型,回调型,*?型及*型,各类型的具体定义如下:
1)开关型:打开或关闭特定条件变量,例如“list-1”,其中-1可以决定list运行时是否显示详细信息。
2)单输入型:为指定变量进行赋值,例如“gcc-o a.o”,其中-o a.o指定了gcc的输出文件名。
3)组输入型:为指定数组进行复制,例如“play-fa.mp3 b.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...)个参数,例如“cp a.mp3 b.mp3”,其中a.mp3为*1,b.mp3为*2。
7)*型:除去*?型,剩下的所有不带“-”提示的参数,例如“gcc a.c b.c c.c”,其中a.c b.c c.c为*型参数,  指定了gcc编译的输入文件列表,命令行参数中只能有一个*型参数。
以上七种类型仅为举例,可以根据具体需要定义不同的类型,参数的分类类型在参数定义表中指定,参数添加在参数匹配中完成解析。图1为本发明方法实施例提供的步骤流程图,参数的解析过程如下:
步骤101,声明参数定义表,使命令行接口程序能载入参数定义表,参数定义表中定义有不同的参数类型;
步骤102,声明参数匹配表;
步骤103,所述参数匹配表根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;
步骤104,根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析。
其中,步骤103的匹配和步骤104的解析过程举例如下:
例1:输入“list-1”,“list-2”,则通过与参数定义表进行比较,发现list命令的参数“-1”  、“-2”存在于“开关型”参数中,因此“-1”、“-2”为“开关型”参数;那么在解析的时候,根据“开关型”参数的定义。-1可以决定list命令运行时显示详细信息,list命令是进行列表的命令,“-1”是列表结果中的每个元素都要显示详细信息,“-2”是列表结果中的每个元素不用显示详细信息。
例2:输入“gcc-o a.o”,则通过与参数定义表匹配,发现“-o a.o”  为单输入型参数;那么在解析的时候,根据单输入型参数的定义,“-o a.o”指定了gcc命令的输出文件名。
例3:输入“play-fa.mp3 b.mp3”、“play-fc.mp3 d.mp3 e.mp3”,通过与参数定义表匹配,发现命令play的参数“-f”存在于“组输入型”参数中,为组输入型参数;
那么在解析的时候,-fa.mp3 b.mp3指定了play命令的一个播放文件的播放列表,其要播放a.mp3和b.mp3文件。而-fc.mp3 d.mp3 e.mp3指定的播放列表则要播放c.mp3、d.mp3和e.mp3文件。
例4:输入“play-m stereo”,通过与参数定义表匹配,发现“-m”  为组选型参数;
那么在解析的时候,-m stereo从mono,stereo,3D中选择了stereo模式。
例5:输入“play-c”,通过与参数定义表匹配,发现-c存在于回调型参数中,那么-c被解析时,根据回调型参数的定义,-c指定的函数将按照回调函数调用。
例6:输入“cp a.mp3 b.mp3”,通过与参数定义表匹配,发现为*?型,*?型表示不带“-”提示的第?(1,2,3...)个参数,那么“cp a.mp3 b.mp3”中的a.mp3解析为*1,b.mp3为*2。
例7:输入“gcc a.c b.c c.c”通过与参数定义表匹配,发现为*型,根据定义,*型表示除去*?型外,剩下的所有不带“-”提示的参数,解析的时候,“gcc a.c b.c c.c”,中a.c b.c c.c指定了gcc编译的输入文件列表,此外,命令行参数中只能有一个*型参数。
由上可知,本发明实施例对命令行参数进行了抽象分类,并引入参数定义表和参数匹配表的概念,高效可靠地完成对命令参数的自动解析。
如图2所示,对应以上方法,本发明实施例还提供了一种计算机命令行参数的处理装置,包括存储单元201和解析单元202;
所述存储单元201存储有参数定义表和参数匹配表,所述参数定义表用于定义不同的参数类型,所述参数匹配表用于根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;
所述解析单元202,用于根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析。
此外,还可以进一步包括复用单元,用于,将所述命令行参数的解析结果存储在所述存储单元,并在所述命令行参数再次输入后,直接调用存储的所述解析结果。
采用本发明实施例具有以下优势:
1)引入参数定义表的概念,对命令行参数进行了抽象分类;
2)引入参数匹配表的概念,针对不同类型的命令行参数进行解析,能高效可靠地完成对命令行参数的自动解析,提高计算机的处理速度;
3)根据不同的类型,对解析结果进行存储,可以复用解析结果;
4)因为有了可复用的解析结果,能进行命令参数的交互式输入,提高了命令行接口程序的用户友好性;
5)能简化命令行程序的编程。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种计算机命令行参数的处理方法,其特征在于,包括如下步骤:
载入参数定义表,所述参数定义表中定义有多种参数类型;
载入参数匹配表,所述参数匹配表根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;
根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析;
存储所述命令行参数的解析结果,在所述命令行参数再次输入后,直接调用存储的所述解析结果。
2.根据权利要求1所述的方法,其特征在于,在所述载入参数定义表的步骤之前,还包括设置所述参数定义表,定义所述参数类型的步骤。
3.根据权利要求2所述的方法,其特征在于,所述参数类型包括:
开关型,用于定义打开或关闭特定条件的变量的命令行参数;
单输入型,用于定义为指定变量进行赋值的命令行参数;
组输入型,用于定义为指定数组进行复制的命令行参数;
组选型,用于定义从可选的参数中选择一个进行变量赋值的命令行参数;
回调型,用于定义选择是否执行指定的回调函数的命令行参数。
4.根据权利要求3所述的方法,其特征在于,所述参数类型还包括:
“*?”型,用于定义不带“-”提示的第“?”个命令行参数;
“*”型,用于定义除去“*?”型的命令行参数外,剩下的所有不带“-”提示的命令行参数。
5.根据权利要求1、2、3或4所述的方法,其特征在于,所述命令行参数为以“c/c++”代码形式表现的计算机代码。
6.一种计算机命令行参数的处理装置,其特征在于,包括存储单元、复用单元和解析单元;
所述存储单元存储有参数定义表和参数匹配表;
所述参数定义表用于定义多种参数类型;
所述参数匹配表,用于根据所述参数定义表定义的参数类型,对输入的命令行参数进行匹配,找到所述命令行参数所对应的参数类型;
所述解析单元,用于根据所述命令行参数所对应的参数类型,对所述命令行参数进行解析;
所述复用单元,用于将所述命令行参数的解析结果存储在所述存储单元,并在所述命令行参数再次输入后,直接调用存储的所述解析结果。
7.根据权利要求6所述的处理装置,其特征在于,所述参数定义表中的参数类型包括:
开关型,用于定义打开或关闭特定条件的变量的命令行参数;
单输入型,用于定义为指定变量进行赋值的命令行参数;
组输入型,用于定义为指定数组进行复制的命令行参数;
组选型,用于定义从可选的参数中选择一个进行变量赋值的命令行参数;
回调型,用于定义选择是否执行指定的回调函数的命令行参数;
“*?”型,用于定义不带“-”提示的第“?”个命令行参数;
“*”型,用于定义除去“*?”型的命令行参数外,剩下的所有不带“-”提示的命令行参数。
CN2008101056390A 2008-04-30 2008-04-30 一种计算机命令行参数的处理方法和装置 Expired - Fee Related CN101271400B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101056390A CN101271400B (zh) 2008-04-30 2008-04-30 一种计算机命令行参数的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101056390A CN101271400B (zh) 2008-04-30 2008-04-30 一种计算机命令行参数的处理方法和装置

Publications (2)

Publication Number Publication Date
CN101271400A CN101271400A (zh) 2008-09-24
CN101271400B true CN101271400B (zh) 2011-06-01

Family

ID=40005393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101056390A Expired - Fee Related CN101271400B (zh) 2008-04-30 2008-04-30 一种计算机命令行参数的处理方法和装置

Country Status (1)

Country Link
CN (1) CN101271400B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924656B (zh) * 2010-08-26 2013-11-06 北京天融信科技有限公司 一种基于动态配置的网络设备cli实现方法和装置
CN102243583A (zh) * 2011-06-09 2011-11-16 深圳市共进电子有限公司 一种命令行参数配置的实现方法
CN105589724B (zh) * 2015-12-23 2018-08-31 杭州真鹏科技有限公司 一种高速创建系统变量的方法
CN108399084B (zh) * 2017-02-08 2021-02-12 中科创达软件股份有限公司 一种应用程序的运行方法及系统
CN111670091B (zh) * 2018-12-25 2022-12-13 深圳配天智能技术研究院有限公司 机器人程序指令编译方法、机器人控制系统及存储装置

Also Published As

Publication number Publication date
CN101271400A (zh) 2008-09-24

Similar Documents

Publication Publication Date Title
CN101271400B (zh) 一种计算机命令行参数的处理方法和装置
CN101206467B (zh) 通用数控代码解析方法
WO2002027533A8 (en) Data import system for data analysis system
RU2013104411A (ru) Сенсорное устройство и его способ сенсорного управления папками
CN103853532B (zh) 用于函数调用的方法和装置
CN101464862A (zh) 结构化查询语言生成系统及方法
CN103425672A (zh) 一种数据库索引的建立方法及装置
CN103246638A (zh) 一种信息粘贴方法和装置
CN105765471B (zh) 定序程序创建辅助装置
CN103049098A (zh) 输入法切换方法及设备
CN106687955A (zh) 简化将数据从数据源转移到数据目标的导入过程的调用
CN105808057A (zh) 一种文件夹中程序的选择方法、装置及终端
CN110531985A (zh) Sdk初始化方法及系统、电子设备、存储介质
CN104598282A (zh) 一种控件捕捉方法和设备
CN106325889A (zh) 数据处理方法及装置
CN105824548B (zh) 一种电子表格单元格合并、拆分方法及装置
CN101776993B (zh) 软件交互界面自动生成系统及方法
CN106484903A (zh) 模板主题一键生成报告的方法
CN102929853A (zh) 基于Excel表单关联的DCS项目数据生成系统和方法
CN102519514B (zh) 电子测试仪器一键式自动测试的实现方法
CN102360250A (zh) 一种记忆式输入法、系统及其应用的移动手持设备
CN102156549A (zh) 一种支持多个设备协同输入的方法与设备
CN101272566A (zh) 一种手机中的人机交互方法和装置
CN105446788B (zh) 一种信息处理方法及电子设备
CN102937872B (zh) 一种人与触摸屏设备的交互系统及交互方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: WUXI VIMICRO ELECTRONIC CO., LTD.

Free format text: FORMER OWNER: BEIJING ZHONGXING MICROELECTRONICS CO., LTD.

Effective date: 20110128

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 15/F, SHINING BUILDING, NO.35, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING TO: 214028 NATIONAL INTEGRATED CIRCUIT DESIGN PARK (CHUANGYUAN BUILDING), NO.21-1, CHANGJIANG ROAD, NEW DISTRICT, WUXI CITY, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110128

Address after: 214028 national integrated circuit design Park, Changjiang Road, New District, Jiangsu,, Wuxi

Applicant after: WUXI VIMICRO Corp.

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 15 Floor

Applicant before: VIMICRO Corp.

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160926

Address after: 518054 Shenzhen, Guangdong, Nanshan District, Hyde Road, No. 201, the Great Wall, 4C, 14

Patentee after: Chen Yingkui

Address before: 214028 national integrated circuit design Park, No. 21-1, Changjiang Road, New District, Jiangsu, Wuxi

Patentee before: WUXI VIMICRO Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171215

Address after: 518054 Guangdong city of Shenzhen province Nanshan District Guangdong streets high-tech park district 15 Keyuan Road, Kexing Science Park B3 building 16 floor

Patentee after: SHENZHEN HUAYUXUN TECHNOLOGY CO.,LTD.

Address before: 518054 Shenzhen, Guangdong, Nanshan District, Hyde Road, No. 201, the Great Wall, 4C, 14

Patentee before: Chen Yingkui

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110601