中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 18:54
48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何在指定的范围内显示随机数字
可打印版本  1,995 / 21
第1楼 khansky 发表于 2007-11-28 23:57
新手上路 发帖 4 积分 12
如何在指定的范围内显示随机数字
如何在指定的范围内显示随机数字,比如我想随机显示的数字为(6,7,8,9,10,11,12,14,15,16,17)为其中的一个。用批处理怎么写,还请各位高人指点。谢谢!
第2楼 scriptor 发表于 2007-11-29 00:17
银牌会员 发帖 555 积分 1,187
第3楼 dikex 发表于 2007-11-29 00:26
高级用户 发帖 366 积分 788


[ Last edited by dikex on 2007-11-29 at 12:30 AM ]
第4楼 zh159 发表于 2007-11-29 00:38
金牌会员 发帖 1,467 积分 3,687
LS的注意,LZ的数字里面没有13,如果是n~m范围就OK,如果是指定数就不行了
需要的数字用空格分隔
第5楼 scriptor 发表于 2007-11-29 00:45
银牌会员 发帖 555 积分 1,187
呵呵,,我也没有仔细看~~
加一个判断就行了~~ 嘿嘿~~
再简化一下....

第6楼 dikex 发表于 2007-11-29 01:29
高级用户 发帖 366 积分 788
没看清楚,看到前面自然就以为是连续的,呵呵
写了另一个利用for的tokens参数的:

第7楼 scriptor 发表于 2007-11-29 02:25
银牌会员 发帖 555 积分 1,187
好呢~~~呵呵 ...
我只是想到了就写,哈哈~~

ps:我睡觉了~
第8楼 zh159 发表于 2007-11-29 02:46
金牌会员 发帖 1,467 积分 3,687
Originally posted by dikex at 2007-11-29 01:29:
没看清楚,看到前面自然就以为是连续的,呵呵
写了另一个利用for的tokens参数的:


简化:
第9楼 26933062 发表于 2007-11-29 04:26
银牌会员 发帖 879 积分 2,268
凑个热闹.
第10楼 dikex 发表于 2007-11-29 12:45
高级用户 发帖 366 积分 788
Originally posted by zh159 at 2007-11-29 02:46 AM:

简化:
第11楼 huahua0919 发表于 2007-11-29 13:40
银牌会员 发帖 780 积分 1,608
引用三楼:
@echo off
:l
set /p max=请输入你想要的最大值:
set /p min=请输入你想要的最小值:

set /a "a=%random%%%(%max%-%min%+1)+%min%"
echo %a%
pause >nul&goto l
第12楼 khansky 发表于 2007-11-29 15:22
新手上路 发帖 4 积分 12
谢谢各位兄弟的帮忙。现在运行这些脚本有以下几点看法:1)。4楼的结果虽然是对的,但要一直循环。我的目的是随机给一个变量赋值为上面数值之一,然后对该变量执行相应的操作。2)5楼兄弟的有时没有输出任何结果,6,8楼的提示The system cannot find the file ,还有一串乱码。9楼的结果都是同一个,15。

还有想问问6,8楼兄弟tn=(%random%)%%(%n%)+1,中间的2个%怎么理解。还有set "string=6 7 8 9 10 11 12 14 15 16 17"的双引号为什么不是放在6的前面尼
?usebackq 现在网上的解释比较乱。还往各位高手赐教。谢谢~~
第13楼 26933062 发表于 2007-11-29 16:03
银牌会员 发帖 879 积分 2,268
Originally posted by khansky at 2007-11-29 15:22:
谢谢各位兄弟的帮忙。现在运行这些脚本有以下几点看法:1)。4楼的结果虽然是对的,但要一直循环。我的目的是随机给一个变量赋值为上面数值之 ...



你说9楼的每次都是 15 ??
你测试了没有啊?在我这里一切正常。每次都是随机数。
别人给你写了代码,你就应该好好测试,这是最起码的尊重吧?
第14楼 zh159 发表于 2007-11-29 16:06
金牌会员 发帖 1,467 积分 3,687
Originally posted by dikex at 2007-11-29 12:45:
比较喜欢用call,这样看起来比较清楚,而且容易扩展;而%random%%%%n%这里加上两个括号也能让代码更清楚,一定程度上防止一些奇怪的错误发生:)

不知道为什么,我执行后会出现:
系统找不到文件 D
C ˜ΐΐ。




改为

后就正常了
%random%%%%n%+1 改为 %random% %% %n%+1 也能看清楚
set/? 里只说明 % 为运算符号,没有详细说明,其实是两数相除后的余数命令行用一个 % ,批处理里用2个%

再将 8 楼的改一下
第15楼 dikex 发表于 2007-11-29 16:16
高级用户 发帖 366 积分 788
Originally posted by zh159 at 2007-11-29 04:06 PM:

不知道为什么,我执行后会出现:




改为
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023