65.9K
CodeProject 正在变化。 阅读更多。
Home

命令行参数解析器

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.07/5 (14投票s)

2003年3月15日

1分钟阅读

viewsIcon

55480

downloadIcon

694

以任何顺序、任意数量、任意类型获取命令行参数

CmdLineParser /command1:argument1 /command2 /command3:longer argument /commannd4:1234

引言

许多应用程序都可以使用命令行参数。通常是一个文件名,例如,你可以使用文档文件名调用 MS Word,它将打开该文件。

这是一个有用的功能。此外,如果你想提供更多的参数,决定哪个参数代表什么,哪个是必需的等等,可能会很困难。

在这个解决方案中,每个参数都以 '/' 字符开头,命令名称和参数之间用 ':' 分隔。

例如

CmdLineParser /file:file_name /print /option1:text with space /option2:1234

如所示,你可以使用

  • 带有参数的命令
  • 仅命令,不带参数,例如 /PRINT
  • 参数可以包含空格,任何字符,除了 '/'
  • 参数可以是任何类型,例如文本、数字、BOOL,我的意思是任何将被转换为你的类型的文本!

使用代码

为了测试,在项目设置对话框(Alt-F7)、对话框窗口中输入一些参数,程序参数。

Project setting dialog (Alt-F7), dialog window

如果你输入之前的参数,它将读取文件名参数,并因为未知参数而给出错误消息

if (!_strnicmp(command, "command", 10))
   {
   strcpy(m_file, arg);
   }
else
   if (!_strnicmp(command, "print", 10))
   ...

要转换你的参数,使用 _strncmp,它不区分大小写,然后编写代码来处理此命令。对于查找未知命令,if else 对很有用。你不能对字符串使用 switch。获取所有参数后,你的代码就可以使用它们了!

历史

它有效了!:)

© . All rights reserved.