[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[ 一日一教学 ] 批处理中随机数的应用

%random%

CMD 中 set /? 随机数相关帮助如下
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。

%RANDOM% 是一个系统的环境变量。要怎么应用呢?

CMD 下
  1. echo %random%
复制代码
保存为 *.BAT 或 *.cmd
  1. ::按一下变一个
  2. @echo off
  3. echo %random%
  4. pause>nul
  5. %0
复制代码
如何显示指定范围的随机数呢?

我们知道拿 m 对 n 取余的话,结果都是在 0 到时 n-1 之间。
即:m mod n = 0 ~ n-1
所以用取余的方法就可以得到指定范围的随机数了。

批处理中 % 表示取余。
写法:m %% n (为什么要用两个 %,请看http://bbs.bathome.net/thread-502-1-1.html

示例:
取 0 - 9 任意一个
set /a n=%random% %% 10
加 /a 是因为进行了取余计算

要取 31 - 98 之间任一个呢?
set /a Rn=%random%%%68 +31
因为 %random%%%68 是从 0 到 67( 68 等于 98-31+1),所以加上 31 就是从 31 到 98 了。
总结规律就是 68 为 31 - 98 范围内数的个数,31 为开始的那个数。

其他的就自己推吧!

[ 本帖最后由 wxcute 于 2008-11-17 08:38 编辑 ]
1

评分人数

    • lixiaodaoaaa: 很好啊!!冰疼,你写的很好!谢谢你拉! ...PB + 6

::返回1,2,3
set /a nn=%random% %%3 +1

::返回-1,0,1
set /a nn=%random% %%3 -1

TOP

@echo off
:c
set /a a=%random%%%10
if "%a%" gtr 7 (goto c) else (
for /f "tokens=%a% delims= " %%b in ("周一 周二 周三 周四 周五 周六 周日") do echo %%b
)
pause

TOP

完全明白随机数的用法呢,呵呵,支持下,真是很好的论坛

TOP

学习了 知道如何应用%random%了

TOP

%0 代表批处理文件自身,意即再执行一次该批处理。最终效果就是不断的生成随机数。
批处理之家论坛官方 QQ 群 :【当前人数/人数上限】【2009-07-08】
群①:43011867(181/200);群②:(暂缺数据);群③:66165582(120/200)。

TOP

后边%0啥意思...........????

TOP

回复 17楼 的帖子

会,随机和不重复并非同一个概念。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. ::按一下变一个
  2. @echo off
  3. echo %random%
  4. pause>nul
  5. %0
复制代码


會出現重複的數字麼??

TOP

回复 15楼 的帖子

请参考12楼的公式
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

那好像取不到15这个数的嘛

TOP

学习了

终于知道 %random% 的使用方法了,好happy!

TOP

由这个想到的数码雨(快速)

@echo off
set /a s=%random%
set /a y=%random%
set /a q=%random%
echo %s% %y% %q% %s% %y% %q% %s% %y% %q% %s% %y% %q%
%0

TOP

意思就是想取X到N的数就是写成 %random%%%(N-X+1)+X
不知道对不对
1

评分人数

TOP

先保存下来在说~~
  呵呵~ 一直在学习 ~

TOP

返回列表