![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 04:54 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助][已解决]请教调整参数排序 |
| 可打印版本 815 / 11 |
| 第1楼 obsolete | 发表于 2008-07-20 12:17 |
| 初级用户 发帖 72 积分 192 | |
|
[求助][已解决]请教调整参数排序 我写了一个验证用户输入是否合法的代码,它的参数比较多,
:validate _envState _envIndex _envInput /n /i /x 后面的/n /i /x 类似于选项 我想要的效果是选项可以在任意位置指定,比如 call :validate /n _envState /i _envIndex /x _envInput 问题:在:validate中能不能通过一段简单的代码,把选项调整到最后? 然后可以通过%1访问_envState,通过%2访问_envIndex,通过%3访问_envInput :算是解决了吧,见3楼 [ Last edited by obsolete on 2008-7-20 at 06:41 PM ] |
|
| 第2楼 obsolete | 发表于 2008-07-20 12:56 |
| 初级用户 发帖 72 积分 192 | |
|
实现参数重新排序的代码基本已经搞定。
现在还有一个问题:我怎么把调整排序的代码“模块化”:作为一个单独的过程,存放到另一个bat文件中? 我的想法是这样: 1. 用goto:调整完成后再调用goto跳回来。但是,如果用goto,调整参数次序的代码应该不能放到另一个bat文件中吧? 2. 用call:这样就需要把参数传递给adjust,但是调整后的参数要怎样应用到callee中去呢?在adjust中再调用一次callee,确保callee这一次完全执行并忽略adjust。callee调用完成后,退回到adjust,再退回到callee,在callee中需要一些代码来阻止它再执行一遍。 这种方法好像会让代码变得很奇怪。 PS:想错了,因为在adjust内使用了标签:callee,所以它也不能存到另一个bat文件中 请问一下有其它的实现方法吗?或纠正一下我上面的两种想法?谢谢! [ Last edited by obsolete on 2008-7-20 at 06:47 PM ] |
|
| 第3楼 obsolete | 发表于 2008-07-20 13:00 |
| 初级用户 发帖 72 积分 192 | |
|
[ Last edited by obsolete on 2008-7-20 at 06:56 PM ] |
|
| 第4楼 26933062 | 发表于 2008-07-20 13:28 |
| 银牌会员 发帖 879 积分 2,268 | |
|
说实话没看懂,你是想把 /n /i /x 放到最后吗?
|
|
| 第5楼 obsolete | 发表于 2008-07-20 13:46 |
| 初级用户 发帖 72 积分 192 | |
|
谢谢楼上,恩,是把/n /i /x 放到最后
但我要做成一个通用的东西,就是以斜杠开头的都放到最后。 PS:上面的代码真是简洁,我还没看懂 |
|
| 第6楼 obsolete | 发表于 2008-07-20 13:47 |
| 初级用户 发帖 72 积分 192 | |
|
哦,看懂了,是把选项过滤掉再加上
好像没有实现这个: 然后可以通过%1访问_envState,通过%2访问_envIndex,通过%3访问_envInput 因为在callee中,我还要按正常的程序来写的,调整参数次序的代码可以看做是透明的,我不关心它产生什么输出。我关心的只是callee的参数。 ![]() [ Last edited by obsolete on 2008-7-20 at 01:49 PM ] |
|
| 第7楼 obsolete | 发表于 2008-07-20 13:54 |
| 初级用户 发帖 72 积分 192 | |
|
好像要求比较过分,不太可能吧。谢谢大家。
我断断续续想了一个礼拜了。 |
|
| 第8楼 26933062 | 发表于 2008-07-20 14:00 |
| 银牌会员 发帖 879 积分 2,268 | |
|
将参数中以 / 开头的,全部放到最后。
|
|
| 第9楼 obsolete | 发表于 2008-07-20 14:10 |
| 初级用户 发帖 72 积分 192 | |
Originally posted by 26933062 at 2008-7-20 14:00: 我的想法是调整了callee的参数排序后,还是使用%1~%9来访问参数。 再次感谢! ![]() [ Last edited by obsolete on 2008-7-20 at 05:12 PM ] |
|
| 第10楼 26933062 | 发表于 2008-07-20 14:41 |
| 银牌会员 发帖 879 积分 2,268 | |
|
不明白你到底要干什么
|
|
| 第11楼 obsolete | 发表于 2008-07-20 14:53 |
| 初级用户 发帖 72 积分 192 | |
Originally posted by 26933062 at 2008-7-20 14:41: 表达能力不好-_-|| [ Last edited by obsolete on 2008-7-20 at 06:31 PM ] |
|
| 第12楼 26933062 | 发表于 2008-07-20 15:28 |
| 银牌会员 发帖 879 积分 2,268 | |
|
好累,严重怀疑我的理解能力。。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |