中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-09 12:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]列出7个小于36的随机数? 查看 750 回复 8
楼 主 [求助]列出7个小于36的随机数? 发表于 2008-08-19 15:13 ·  中国 黑龙江 大庆 大庆中基石油通信建设有限公司
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
看到了龙卷风的求随机数的代码,突然想扩展一下,列出7个小于36的随机数,但始终无法做到,能帮我修正或提供一个代码吗:
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1 1 7) do (
:return
set /a randomnum=!random!%%100
if !randomnum! gtr 36 (
goto return
) else (
echo this !randomnum!
pause
)
)
pause
2 发表于 2008-08-19 15:16 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
for里面不能有标签。
另外要让一个随机数小于36,只要除以36取余就好了。
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
3 发表于 2008-08-20 09:01 ·  中国 黑龙江 大庆 大庆中基石油通信建设有限公司
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
谢谢!但是列出的随机数有相同的,有什么办法解决吗?
4 发表于 2008-08-20 09:25 ·  中国 北京 联通
社区乞丐
积分 -61
发帖 37
注册 2008-04-19 17:10
18年会员
UID 116329
性别 男
状态 离线
小试一把

@echo off&setlocal enabledelayedexpansion
for /l %%a in (1;1;7) do (
set/a b=!random!%%36
call :FQ !b!
)
goto :eof
:FQ
if not defined %1 (set %1=FQ) else goto loop
echo %1
goto :eof
:loop
set/a b=!random!%%99+1
call :FQ !b!
5 发表于 2008-08-20 09:27 ·  中国 北京 联通
社区乞丐
积分 -61
发帖 37
注册 2008-04-19 17:10
18年会员
UID 116329
性别 男
状态 离线
我怀疑你是彩票爱好者,哎,我也喜欢玩彩票,不过从来没有中过
6 发表于 2008-08-20 09:32 ·  中国 广东 广州 电信
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
试试这个?

@echo off
:again
for /l %%a in (0 1 36) do (set "%%a=")
set "n=0"
:begin
set /a "a=%random%%%36"
if defined %a% goto :begin
echo %a%
set "%a%=ok"
set /a "n+=1"
if %n% lss 7 goto :begin
echo.&pause&cls&goto :again
7 发表于 2008-08-20 10:26 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线

@echo off
:lp
set /a a=%random%%%36
if defined _a goto lp
set /p=%a% <nul&set "_%a%=a"
set /a n+=1
if %n% neq 7 goto lp
pause>nul
批处理之家新域名:www.bathome.net
8 发表于 2008-08-20 10:34 ·  中国 黑龙江 大庆 联通
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
嘿嘿!是的,但我每次只买一注,纯属娱乐!
9 发表于 2008-08-20 10:42 ·  中国 黑龙江 大庆 联通
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
Originally posted by moniuming at 2008-8-20 09:32:
试试这个?

@echo off
:again
for /l %%a in (0 1 36) do (set "%%a=")
set "n=0"
:begin
set /a "a=%random%%%36"
if defined %a% goto :begin
echo %a%
set ...

能给解释一下思路吗?糊涂了!
论坛跳转: