想写一个功能强大点的控制台程序,知道Main方法中的string[] args是向控制台传递的参数。
请问如何来判定读取这些参数呢?看过一些其他的控制台参数,比如dir /p /w也可以写为dir /p/w,也可以使用管道dir|sort而XCOPY的参数要复杂一些,包括读取路径的判定。
xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z]而且最后的参数也不能提到前面。至于mencoder和rar的参数似乎更复杂一点。
想问一下,如果对于这种大量的参数,包括了开关,路径之类的选择,应该怎样加入判定呢?一个个foreach和switch-case在参数很多的时候似乎太麻烦了。
比如mencoder在编码流媒体的时候,参数有一个-rate 15来决定帧率,这一类的参数怎么控制?
请问如何来判定读取这些参数呢?看过一些其他的控制台参数,比如dir /p /w也可以写为dir /p/w,也可以使用管道dir|sort而XCOPY的参数要复杂一些,包括读取路径的判定。
xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z]而且最后的参数也不能提到前面。至于mencoder和rar的参数似乎更复杂一点。
想问一下,如果对于这种大量的参数,包括了开关,路径之类的选择,应该怎样加入判定呢?一个个foreach和switch-case在参数很多的时候似乎太麻烦了。
比如mencoder在编码流媒体的时候,参数有一个-rate 15来决定帧率,这一类的参数怎么控制?
解决方案 »
- 希望统一修改一些chart控件的样式,该怎样做?
- 类名首字母大写的问题
- 求求求~~高手帮帮忙!
- 一个关于xml中AppendChild的问题
- [winform]AxWebBrowser如何捕捉javascript发出的事件
- 初学者:为什么会有这样的错误:只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句
- 关于在服务器上安装部署的时候dotnetfx.exe一起安装的问题,肯定做过的人相告,具体描述如下:(分不够再加)
- 用过MSDN宇宙版的进来
- 这个using起什么作用???
- 如何将这段程序由windown验证变为Forms验证
- 有没有办法把阿拉伯数字1,2,3,4等转变为汉字一,二,三,四等等啊?
- 在DataGridView中,是不是不能用CellValidating事件来验证新行啊?
这样一来只剩下判定这些参数了……
我自己大致的思路,把这args用foreach遍历,然后每个都用switch-case,但是这样做是有问题的。
如同方法的重载,有些参数是可有可无的,参数的格式各不相同,如/和-等等,甚至有的/和-意思一样(xcopy中的/y和-y一个意思)。
总之,好麻烦,想不出来下面怎么写。真有大量参数的话,光switch-case估计都能占一个版面了
没有什么捷径,写时候慢慢添加进去。
至于/和-,在foreach时可以先处理掉这个字符,将后面的字母等用switch。或者只支持其中一种。