原理
随机数变量%random%
cmd中的随机数变量random
的取值范围为:[0,65535]
获取[0,X]之间的随机数
可以对X+1求余,即可得到[0,x]区间的随机数:
获取[X,Y]之间的随机数
先对Y-X+1求余,即可得到[0,Y-X]区间的随机数,
然后再整体加上X,即可得到[0+X,Y-X+X]区间的随机数,也就是[X,Y]区间的随机数。
示例
获取[4,12]之间的随机数
1 2 3 4
| set min=4 set max=12 set /a mod=%max% - %min% + 1 set /a test=%RANDOM% % %mod% + %min%
|
获取[4,5]区间的随机数
也就是要么是4,要么是5:
1 2 3 4
| set min=4 set max=5 set /a mod=%max% - %min% + 1 set /a test=%RANDOM% % %mod% + %min%
|
.bat文件中的求余符号%要写成%%
上面的命令可在cmd窗口中有效。如果要写成.bat文件,则需要把求余符号写成两个百分号 %%
。
也就是写成如下的形式:
test.bat1 2 3 4
| set min=4 set max=5 set /a mod=%max% - %min% + 1 set /a test=%RANDOM% %% %mod% + %min%
|
示例 .bat中生成[0,10]区间的随机数
random.bat1 2 3 4 5 6 7
| @echo off pause :loop set /a i=%random% %% 10 + 1 echo i=%i% pause goto loop
|
运行效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| D:\Desktop\test\CMD>random.bat 请按任意键继续. . . i=6 请按任意键继续. . . i=6 请按任意键继续. . . ...... 省略部分输出 ....... i=8 请按任意键继续. . . i=1 请按任意键继续. . . i=9 请按任意键继续. . . i=3 请按任意键继续. . . i=1 请按任意键继续. . . i=10 请按任意键继续. . . i=2 请按任意键继续. . . 请按任意键继续. . . 终止批处理操作吗(Y/N)? y
D:\Desktop\test\CMD>
|
示例 在自动化脚本中加入随机数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| chcp 65001 @echo off echo 脚本名称[刷视频]
set min=4 set max=12 set /a mod=%max% - %min% + 1
set n=0 :n set /a n+=1 If %n%==80 goto nn echo 第 %n% 次循环
adb shell input swipe 5 1650 5 700 200 echo 从:448.6 1523 滑动到 697 478,持续 200 毫秒
set /a test=%RANDOM% %% %mod% + %min%
echo 延时 %test% 秒 choice /t %test% /d y /n >nul
goto n :nn
|
参考资料
https://www.jianshu.com/p/fc78fda5d251
https://blog.csdn.net/weixin_34387284/article/details/92065189