中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]列出7个小于36的随机数?
作者:
标题: [求助]列出7个小于36的随机数? 上一主题 | 下一主题
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『楼 主』:  [求助]列出7个小于36的随机数?

看到了龙卷风的求随机数的代码,突然想扩展一下,列出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

2008-8-19 15:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 2 楼』:  

for里面不能有标签。
另外要让一个随机数小于36,只要除以36取余就好了。



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-8-19 15:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 3 楼』:  

谢谢!但是列出的随机数有相同的,有什么办法解决吗?

2008-8-20 09:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
FQ
社区乞丐





积分 -61
发帖 37
注册 2008-4-19
状态 离线
『第 4 楼』:  

小试一把
@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!


2008-8-20 09:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
FQ
社区乞丐





积分 -61
发帖 37
注册 2008-4-19
状态 离线
『第 5 楼』:  

我怀疑你是彩票爱好者,哎,我也喜欢玩彩票,不过从来没有中过

2008-8-20 09:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 6 楼』:  

试试这个?
@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


2008-8-20 09:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 7 楼』:  


@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
2008-8-20 10:26
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 8 楼』:  

嘿嘿!是的,但我每次只买一注,纯属娱乐!

2008-8-20 10:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by moniuming at 2008-8-20 09:32:
试试这个?
[code]
@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 ...

能给解释一下思路吗?糊涂了!

2008-8-20 10:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: