源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

bat下产生指定范围随机数字的实现方法

  • 时间:2020-06-05 20:49 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:bat下产生指定范围随机数字的实现方法
最近研究批处理命令,偶然发现,居然还有随机数,在此之前,是未敢想过。 说到随机数,不同的软件都有随机函数的功能,使用方法大体类似,但却有着区别。 本文,给您介绍一下MS-DOS中的批处理命令random的用法及实例。 [b]一、random的取值范围 [/b]   要使用random,必须将其当作一个变量来使用,这样才能得到值。   打开MS-DOS窗口,输入如下代码,即可获得值。
[u]复制代码[/u] 代码如下:
  echo %random%
  %random%可以产生0到65535之间的随机数。 [b]二、通过获得一定范围内的随机数 [/b]  通过一,我们知道,%random%可以产生0到32767之间的随机数,但是,如何才能得到一定范围内的随机数呢?   通用的算法公式如下:   通用的公式%random%%%(max-min+1)+min来产生[min,max]区间里的随机数,注:批处理中求模得用两个%%符号。   比如,我们想获得4到12之间的随机数,就可以这样来使用,代码如下:
[u]复制代码[/u] 代码如下:
  @REM 产生10个[4,12]间的随机数   @echo off   REM 启用延迟环境变量扩展   setlocal enabledelayedexpansion   REM 设置随机数的最小和最大值以及求模用的变量   set min=4   set max=12   set /a mod=!max!-!min!+1   for /l %%i in (1,1,10) do (   REM 产生[min,max]之间的随机数   set /a r=!random!%%!mod!+!min!    echo.   echo 随机数%%i:!r!   )
[b]三、其它实例 [/b]  实例①:常用功能     生成1到100之间的随机数
[u]复制代码[/u] 代码如下:
  set /a RandomNumber=%random%%0+1   ::100是范围数,1是底数即开始的数.(在bat 中使用),在CMD中会出错.   ::取随机两位数   set /a d=%random:~0,2%   echo %d%   ::避免00   set /a e=1%random:~0,2%-100   echo %e% @echo off   :loop   set /a RandomNumber=1%random:~-1%%random:~-1%-99   ::最大值100   if %RandomNumber% LSS 35 goto loop   ::小于35返回   if %RandomNumber% GTR 75 goto loop   ::大于75返回   echo %RandomNumber%   if "%RandomNumber%" == "50" pause   goto loop
  实例②:随机获取文件名
[u]复制代码[/u] 代码如下:
  @echo off   if "%1" NEQ "$" (    for /f "tokens=1,2 delims=:" %%a in ('"%~0" $^|sort') do @echo %%b   ) else for /f "delims=" %%i in ('dir /b /a-d *.mp3') do @call :sub %%i   goto :EOF:sub   echo %random%:%*   goto :EOF
  实例③:在一个文本中随机取一行数据
[u]复制代码[/u] 代码如下:
  @ECHO %DBG% OFF   SETLOCAL ENABLEDELAYEDEXPANSION   FOR /F "TOKENS=*" %%i IN (TEST.TXT) DO (SET /A h+=1 & SET r!h!=%%i)   SET /A s=%RANDOM%%%%h%+1   ECHO !r%s%!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部