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

所属分类: 脚本专栏 / DOS/BAT 阅读数: 1553
收藏 0 赞 0 分享

最近研究批处理命令,偶然发现,居然还有随机数,在此之前,是未敢想过。
说到随机数,不同的软件都有随机函数的功能,使用方法大体类似,但却有着区别。
本文,给您介绍一下MS-DOS中的批处理命令random的用法及实例。

一、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%!

更多精彩内容其他人还在看

mshta命令用法示例

这篇文章主要介绍了mshta命令用法示例 ,需要的朋友可以参考下
收藏 0 赞 0 分享

使用BAT批处理执行sql语句的代码

有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法
收藏 0 赞 0 分享

批处理的图形界面实现方法小结

其实所谓的图形界面就是通过bat通过调用mshta来实现的一些对话框效果,这里特整理下, 方便需要的朋友
收藏 0 赞 0 分享

批处理中的echo命令图文详解

这篇文章主要介绍了批处理中的echo命令图文详解,里面都附有详细的图片执行效果,非常不错需要的朋友可以参考下
收藏 0 赞 0 分享

批处理中常用命令介绍(Echo、rem、goto、call、pause、if、for)

这篇文章主要介绍了批处理中常用命令介绍,包括Echo、rem、goto、call、pause、if、for,学习bat必备的啊
收藏 0 赞 0 分享

改变cmd命令提示符颜色的3个小技巧

这篇文章主要介绍了改变cmd命令提示符颜色的3个小技巧,推荐使用第三个技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

使用BAT批处理在RAR压缩文件中批量添加文件的方法

这篇文章主要介绍了使用BAT批处理在RAR压缩文件中批量添加文件的方法,可以用在很多地方,例如做下载加的朋友,想要加个网站快捷方式在以前压好的压缩文件中等,需要的朋友可以参考下
收藏 0 赞 0 分享

bat 传递超过10个参数的情况

批处理文件中可引用的参数为%0~%9, %0是指批处理文件的本身,也可以说是一个外部命令;%1~%9是批处理参数,也称形参;而替换形参的实参若超过了批处理文件中所规定数值(9个)且想在批处理文件中应用这些实参的话,shift命令可以帮你实现
收藏 0 赞 0 分享

BAT 参数去引号(各种去引号的奇葩方式)

这篇文章主要介绍了BAT 参数去引号,各种去引号的奇葩方式,需要的朋友可以参考下
收藏 0 赞 0 分享

使用批处理命令设置windows系统的ip地址和dns附图

这篇文章主要介绍了如何使用批处理命令设置windows系统的ip地址和dns,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多