随机数

使用动态变量%Random%,我们可以得到 0 到 32767 之间的随机整数。例如:

echo %random%

显然,这会返回一个从 0 到 32767 的整数。但有时我们希望它在特定范围内,比如从 1 到 100。

生成特定范围内的随机数

这样做的基本方法如下所示。

set /a result=(%RANDOM%*max/32768)+min

其中 max 是可以生成的顶部数字,min 是可以生成的最小数字。请注意,你不会获得任何小数,因为 set /a 会自动向下舍入。要生成十进制随机数,请尝试以下操作:

set /a whole=(%RANDOM%*max/32768)+min
set /a decimal=(%RANDOM%*max/32768)+min
echo %whole%.%decimal%

生成大于 32767 的随机数

如果你试试

set /a whole=(%RANDOM%*65536/32768)+1

你最有可能获得奇数的随机数。

要生成大于 32767 的数字,这是一个更好的方法。

set /a result=%random:~-1%%random:~-1%%random:~-1%%random:~-1%%random:~-1%%random:~-1%

前面的代码从每个%random%中提取 1 个字符。但这是故意的。

由于 random 号码可以是一位数字,因此提取最后两位数字将不起作用。这就是为什么我们只提取最后一个字符。在这种情况下,我们有 6 %random:~-1%,产生 999999 的最大值,而 000000 的最小值,你可能需要调整它以满足你的需要。

cmd.exe 根据 cmd 部分开始的时间生成种子,所以如果你几乎同时开始 mutliple 部分,结果可能不够随机