如1 到10之间产生两个不重复随机数::random 10 2
关闭自动打印
@echo off
:延迟变量,使变量顺序加载
setlocal enabledelayedexpansion
:获取第一个参数
set total=%1
:获取第二个参数
set count=%2
echo 1到%total%之间随机数
:初始化数组1到total
for /l %%a in (1,1,!total!) do (set number%%a=%%a)
:初始化随机数循环结束值
set /a low = !total!-!count! + 1
:循环
for /l %%a in (!total!,-1,!low!) do (
set /a index=!total! - %%a +1
set /a rand=!random! %% %%a + 1
set /a new!index!=number!rand!,TempNum=number!rand!
set /a number!rand!=number%%a,number%%a=TempNum
)
:随机数(从小到大)
for /l %%j in (1 1 !count!) do (
for /l %%k in (1 1 !count!) do (
if !new%%k! gtr !new%%j! (
set /a tmp=!new%%j!
set /a new%%j=!new%%k!
set /a new%%k=!tmp!
)
)
)
:循环打印每一个随机数
echo 运行结果:
for /l %%a in (1,1,!count!) do echo,!new%%a!