随机数
使用动态变量%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 部分,结果可能不够随机。