如何分析程序内的.exe参数?

4 投票
9 回答
1784 浏览
提问于 2025-04-11 19:07

我有一个程序,它可以有很多参数(我们有超过30种不同的选项)。

举个例子: myProgram.exe -t alpha 1 -prod 1 2 -sleep 200

这里有3个命令(来自命令模式对象),每个命令都包含一些参数。在代码里,我们会解析所有以“-”开头的命令,并把它们分割成一个字符串列表(通过空格分开)来获取参数。所以实际上,我们得到的是:字符串-->每个命令的字符串参数集合。

目前,我们使用字符串比较的方法来让整个程序正常工作(实例化具体的命令并返回ICommand接口)。问题是,我们每次都需要做很多IF判断才能找到正确的命令。

你有没有什么模式可以用来从一个EXE中提取所有参数,而不需要使用太多的IF判断?

代码是用C#写的,但我觉得这个逻辑也可以用其他语言实现……

9 个回答

5

这是一个对C#很有用的选项库:NDesk.Options

6

(好吧,因为这个问题是关于Python的):

我们使用Python的optparse模块来实现这个功能。这个模块的使用方式比很多复杂的条件判断要简单得多。

5

创建一个哈希表,用来存储函数指针(在C#中叫做委托),这些指针用来处理每一个参数。哈希表的键是参数的文本。然后,你只需要在一个循环中遍历命令行,根据从哈希表查找出来的内容来调用相应的委托。

撰写回答