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

[文件操作] [已解决]批处理如何控制指定随机数产生的个数和位数?

因为需要生成的个数,每个都不同,我写了代码,但是达不到效果,请大家帮助。
  1. @echo off&setlocal EnableDelayedExpansion
  2. set/a m0=%random:~0,2%*%random:~0,3%
  3. for /l %%a in (1,1,10) do (
  4.      set /a r=!m0!
  5.      echo.
  6.    echo %%a !r!
  7.   )
  8. pause
复制代码
生成结果为:
  1. 1 16380
  2. 2 16380
  3. 3 16380
  4. 4 16380
  5. 5 16380
  6. 6 16380
  7. 7 16380
  8. 8 16380
  9. 9 16380
  10. 10 16380
  11. 请按任意键继续. . .
复制代码
想每次产生的数字都不同,而不是一样的,并且能否截断超出或者如果位数不到自动过滤,

我是制定生成5位数的,如果因为%random:~0,2%*%random:~0,3%相乘的数字超过5位,比方乘出来变成了 123456 ,那就自动剔除,让程序再生成一个符合条件,比方相乘出1234.也是剔除,不知批处理可否做到?


理想效果是:
  1. 1 43456
  2. 2 73453
  3. 3 87216
  4. 4 45120
  5. 5 01145
  6. 6 78545
  7. 7 84462
  8. 8 45661
  9. 9 16380
  10. 10 91120
  11. 请按任意键继续. . .
复制代码
意思就是要每个都不一样的?帮帮我吧,谢谢大家!!!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1,1,10) do (
  4.     set n=
  5.     for /l %%b in (1,1,5) do (
  6.         set n=!n!!random:~0,1!
  7.     )
  8.     echo,!n!
  9. )
  10. pause
复制代码
1

评分人数

TOP

set _a=0123456789,之后截取不行么?
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

本帖最后由 weichenxiehou 于 2011-9-11 23:00 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 10) do (
  3.   set/a num=10000+!random!
  4.   echo,%%i:!num!
  5. )
复制代码
1

评分人数

看得多说得多,远比不上写得多。

TOP

回复 3# wc726842270

随机数指定了位数之后,比方指定成两位,依旧会出现,1,2,之类的数字的,只是概率相对较少吧。

TOP

想要生成几个..每个随机数都用个位数来替代就好了吧..每位数从0-9.随机生成..
我是一个新手.看到此签名的请发点教程我!!谢谢!!

TOP

  1. @echo off&setlocal EnableDelayedExpansion
  2. for /l %%a in (1,1,10) do (
  3. set m0=!random:~0,2!!random:~0,3!
  4.     echo.
  5. echo %%a !m0!
  6.   )
  7. pause
复制代码

TOP

返回列表