温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

bat下怎么产生指定范围随机数字

发布时间:2021-07-22 22:45:15 来源:亿速云 阅读:292 作者:chen 栏目:开发技术

本篇内容主要讲解“bat下怎么产生指定范围随机数字”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“bat下怎么产生指定范围随机数字”吧!



一、random的取值范围

  要使用random,必须将其当作一个变量来使用,这样才能得到值。
  打开MS-DOS窗口,输入如下代码,即可获得值。

代码如下:


  echo %random%


  %random%可以产生0到65535之间的随机数。

二、通过获得一定范围内的随机数

  通过一,我们知道,%random%可以产生0到32767之间的随机数,但是,如何才能得到一定范围内的随机数呢?
  通用的算法公式如下:
  通用的公式%random%%%(max-min+1)+min来产生[min,max]区间里的随机数,注:批处理中求模得用两个%%符号。
  比如,我们想获得4到12之间的随机数,就可以这样来使用,代码如下:

代码如下:


  @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!
  )



三、其它实例

  实例①:常用功能  
  生成1到100之间的随机数

代码如下:


  set /a RandomNumber=%random%%%100+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



  实例②:随机获取文件名

代码如下:


  @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



  实例③:在一个文本中随机取一行数据

代码如下:


  @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%!

到此,相信大家对“bat下怎么产生指定范围随机数字”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

bat
AI