![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 05:40 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 精通批处理的进来看看 |
| 可打印版本 1,794 / 15 |
| 第1楼 jaceyxp | 发表于 2007-04-16 04:11 |
| 初级用户 发帖 10 积分 21 | |
|
精通批处理的进来看看 设定a1=123,
b1=456, c1=789, d1=009 我想得到的结果是: 随机取2个值(比如a1c1,a1d1,b1c1,b1d1等等)要求输入它们的值,输入对了就ok,不对就退出。 第一次运行时屏幕提示: 请输入组合密码a1b1: (如果输入123456)就通过,否则退出。 第二次运行时屏幕提示: 请输入组合密码d1b1: (如果输入009456)就通过,否则退出。 …… 以此类推。相当于随机取数组。这个该怎么实现? 换句话说我要实现像工商银行一样的口令卡功能。 |
|
| 第2楼 bjsh | 发表于 2007-04-16 05:08 |
| 银牌会员 发帖 621 积分 2,000 | |
|
试试这个呢
|
|
| 第3楼 vkill | 发表于 2007-04-16 05:16 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by bjsh at 2007-4-16 05:08: bjsh 兄 多写了 setlocal enabledelayedexpansion 哦,呵呵,因为你没有用 |
|
| 第4楼 bjsh | 发表于 2007-04-16 05:24 |
| 银牌会员 发帖 621 积分 2,000 | |
|
第11句用了呀;呵呵
|
|
| 第5楼 vkill | 发表于 2007-04-16 05:25 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by bjsh at 2007-4-16 05:24: 哦,怪我没有仔细看,不过怎么下面没有用,像这个%%%p%%% |
|
| 第6楼 bjsh | 发表于 2007-04-16 05:25 |
| 银牌会员 发帖 621 积分 2,000 | |
|
我记得set 有个可以连续赋值的;
也就是2 3 4 5行本来可以合成一行的;一下想不起如何连续赋值了; 哪位给提醒下啊! |
|
| 第7楼 bjsh | 发表于 2007-04-16 05:29 |
| 银牌会员 发帖 621 积分 2,000 | |
Originally posted by vkill at 2007-4-15 04:25 PM: 真是的;用call用顺手了;直接就几个百分号上去了; |
|
| 第8楼 vkill | 发表于 2007-04-16 05:53 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by bjsh at 2007-4-16 05:25: 大概这个样子 set "v=!v!%%?" |
|
| 第9楼 jaceyxp | 发表于 2007-04-16 06:04 |
| 初级用户 发帖 10 积分 21 | |
|
bjsh不愧是高手,如果我要增加如:a2,b2,c2,d2.....我要改什么?setlocal enabledelayedexpansion是什么意思?
|
|
| 第10楼 bjsh | 发表于 2007-04-16 06:21 |
| 银牌会员 发帖 621 积分 2,000 | |
在第5行后面继续set a2=..... 修改第六行和第八行的随机数;比如你增加到了八个 把4改成8; set /a m=%random%%%4+1改为set /a m=%random%%%8+1 同时第11行的for 中的in()集合要把所有的a1.....a2...什么的加进去以空格分开; |
|
| 第11楼 windeshadow | 发表于 2007-04-16 12:02 |
| 初级用户 发帖 15 积分 38 | |
|
哈哈 没看懂 有没人翻译下?
set /a m=%random%%%4+1 里面面%%4是什么意思 for /f %%b in ('call echo %%%p%%%') do set "answer=%%b" %%%p%%% 这个为什么这么多%号? 哈哈要是有人翻译下 第11句就更好了 |
|
| 第12楼 dikex | 发表于 2007-04-16 12:19 |
| 高级用户 发帖 366 积分 788 | |
|
setlocal enabledelayedexpansion
搜索变量延迟 set /a m=%random%%%4+1,在批处理里面%是转移字符,%%这个在命令行下面为%,就是set /a m=%random%%4+1,而set /a下面%意思为整除,所以这个就是把m的值设为一个随机数正常4后再加上1; 那么多%的原因参照上面的:%为转移字符 |
|
| 第13楼 flyinspace | 发表于 2007-04-16 12:37 |
| 银牌会员 发帖 517 积分 1,206 | |
|
bjsh,,关于连续赋值是 :
set /a a=1,b=2,c=3,d=4 这样就把几个值给确定了。。。。 |
|
| 第14楼 bjsh | 发表于 2007-04-16 21:16 |
| 银牌会员 发帖 621 积分 2,000 | |
|
谢flyinspace兄
|
|
| 第15楼 lililulula | 发表于 2007-04-17 04:31 |
| 中级用户 发帖 138 积分 302 | |
|
没看明白~~~~残念~~~~~~~
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |