控制用户输入arguments

chenzhenyu_houday 2010-09-01 11:07:22
自己写一个console程序,用户可以输入一些参数。
但是在用户输入的参数里面要进行控制,
比如,你打开个cmd窗口, copy /? 回车。
===============它会出现:=================
Copies one or more files to another location.

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [destination [/A | /B]]

source Specifies the file or files to be copied.
/A Indicates an ASCII text file.
/B Indicates a binary file.
/D Allow the destination file to be created decrypted
destination Specifies the directory and/or filename for the new file(s).
/V Verifies that new files are written correctly.
/N Uses short filename, if available, when copying a file with a
non-8dot3 name.
/Y Suppresses prompting to confirm you want to overwrite an
existing destination file.
/-Y Causes prompting to confirm you want to overwrite an
existing destination file.
======================================
类似这样,用户只能输入/y 或者/-y ,二者不能同时出现。

问题来了:怎样控制args,才能保证二者/Y /-Y同时出现是错误的,出现一个或一个都不出现是正确的。
...全文
138 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gengchenhui 2010-09-01
  • 打赏
  • 举报
回复
获取参数的长度?
你是想在 开始——》运行,这里面输入你的程序名就打开你的程序?这样的话你还需要设置环境变量吧?
如果是在快捷方式后面添加参数可以,你先判断一下参数长度不就行了???
chenzhenyu_houday 2010-09-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sp1234 的回复:]
软件开发是一种工程行为,而不是做教授领工资。而这有很大区别,也就有了不同的行动指南。
[/Quote]
闹不住嘞,被更像教授的人批成教授了。(我是指你的等级比较高,无恶意)!
干嘛这么“联想”啊,好像你从这一点上就看出我比较适合什么职业。
  • 打赏
  • 举报
回复
软件开发是一种工程行为,而不是做教授领工资。而这有很大区别,也就有了不同的行动指南。
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chenzhenyu_houday 的回复:]
条件:
1。最好不遍历args,
2。忽略大小写. /Y /y /-Y /-y

抛砖引玉:
if ((args.Contains("/Y") || args.Contains("/y")) && (args.Contains("/-Y") || args.Contains("/-y")))
{
///
}
这个例子虽然忽略了大小写,但是用的是穷举的办法。
……
[/Quote]
你想多了。做学问去当教授合适,做开发显然要把生意全都丢掉。
机器人 2010-09-01
  • 打赏
  • 举报
回复
只能做输入检查,但是不能屏蔽这样的输入。
chenzhenyu_houday 2010-09-01
  • 打赏
  • 举报
回复
条件:
1。最好不遍历args,
2。忽略大小写. /Y /y /-Y /-y

抛砖引玉:
if ((args.Contains("/Y") || args.Contains("/y")) && (args.Contains("/-Y") || args.Contains("/-y")))
{
///
}
这个例子虽然忽略了大小写,但是用的是穷举的办法。
万一参数变长了,比如/isOutput,为了忽略大小写,而穷举,就比较麻烦了。
要写很多,/IsOutPut /isoutput /isOUTPUT.........

期待高手
嗷嗷叫的老马 2010-09-01
  • 打赏
  • 举报
回复
对内部参数的遍历/查表是必不可少的吧.

从要求来看,参数具有两个属性,+与-,其中+可以省略.

这样的话首先取得参数,确定参数的唯一性,再判断属性的唯一性,不就OK了么.
gengchenhui 2010-09-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chenzhenyu_houday 的回复:]

引用 6 楼 gengchenhui 的回复:
获取参数的长度?
你是想在 开始——》运行,这里面输入你的程序名就打开你的程序?这样的话你还需要设置环境变量吧?
如果是在快捷方式后面添加参数可以,你先判断一下参数长度不就行了???

我有种想吐槽的冲动!
[/Quote]
有什么就说。。。。。。。。。。。。。。。。。。。。。。。
chenzhenyu_houday 2010-09-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gengchenhui 的回复:]
获取参数的长度?
你是想在 开始——》运行,这里面输入你的程序名就打开你的程序?这样的话你还需要设置环境变量吧?
如果是在快捷方式后面添加参数可以,你先判断一下参数长度不就行了???
[/Quote]
我有种想吐槽的冲动!

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧