收藏 分销(赏)

批处理命令随机数random的用法及实.doc

上传人:s4****5z 文档编号:8890416 上传时间:2025-03-06 格式:DOC 页数:4 大小:40KB 下载积分:10 金币
下载 相关 举报
批处理命令随机数random的用法及实.doc_第1页
第1页 / 共4页
批处理命令随机数random的用法及实.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
批处理命令随机数random的用法及实例 最近研究批处理命令,偶然发现,居然还有随机数,在此之前,是未敢想过。   说到随机数,不同的软件都有随机函数的功能,使用方法大体类似,但却有着区别。 本文,给您介绍一下MS-DOS中的批处理命令random的用法及实例。 0到100之间的数 @echo off setlocal enabledelayedexpansion set /a h1="%random%%%100"::除以100的余数 echo %h1% pause 产生一个255以内的数 @echo off setlocal enabledelayedexpansion set /a h1=%random%%%255+1 echo %h1% pause _______________________ 随机 0-99 的随机数 @echo off :loop set /a "a=%random%%%100" echo %a% pause goto loop --- 注: %random%变量指0到32726的随机数 %random%%%100是指向100求模,意指用随机数%random%除以100,然后取余数,余数就只能为0-99之间了. 批处理产生四个四位不重复的随机数 @echo off setlocal enabledelayedexpansion set var=123456789 set /a h1=%random%%%9+1 set var=!var:%h1%=0! for /l %%i in (9,-1,7) do ( set /a temp=!random!%%%%i call set h%%i=%%var:~!temp!,1%% call set var=%%var:!h%%i!=%% ) echo %h1%%h9%%h8%%h7% pause 批处理产生四个四位不重复的随机数@echo off setlocal enabledelayedexpansion set /a str=123456789 for /l %%i in (1 1 10) do ( set /a num=!random! %% 9+1 call set str=%%str:!num!=%%!num! ) echo !str:~2,4! Pause @echo off&setlocal enabledelayedexpansion ::生成四位的随机数100个 for /l %%i in (1,1,100) do (set/a #%%i=!random!%%9000+1000) ::过滤掉有重复数字的随机数 for /l %%i in (0,1,100) do ( for /l %%j in (0,1,9) do ( set ss=!#%%i:%%j=! if !ss! lss 100 (set "#%%i=") ) ) for /f "tokens=2 delims=#=" %%i in ('set #') do echo %%i pause   一、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%!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服