用Random产生1到10之间的一个随机数


bat中怎样用Random产生1到10之间的一个随机数?

    当然是用%random%,示例:

@echo off
rem 用Random产生1到10之间的一个随机数
set num=%random%
set /a num=num%%10+1
echo %num%


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

set numN=%random%
set /a numN=numN%%9+4
echo %numN%

 

    为了验证批量生成随机数的情况,我加入了延时输出脚本,每隔1秒输出一次随机数:

@echo off
rem 用Random产生4到12之间的一个随机数

:myTimer
set numN=%random%
set /a numN=numN%%9+4
echo %numN%

rem 用choice做轮询执行,每1秒执行一次,指导11时56分00秒结束
choice /t 1 /d y /n >nul
if "%time:~0,8%" == "11:56:00" (
    echo 时间到!!!
    goto myTimerExec
) else (
    goto myTimer
)

:myTimerExec
pause

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM