我需要一个批处理文件随机器从 1-30 中随机选择 5 个数字,然后输出它们。我进行了研究,没有发现任何对我有用的东西。我是初学者,所以如果您可以简化代码并对其进行解释,以便以后如果我再次需要它可以重现它。
问问题
685 次
2 回答
3
批量菜鸟答案是绝对正确的,但可以生成重复的数字。对于没有重复数字的选项,
@echo off
setlocal enableextensions
for /F "tokens=2" %%l in ('cmd /v:on /c "@for /L %%n in (1 1 30) do @echo ^!random^! %%n"^|sort^|more +25') do (
echo %%l
)
它产生一个 cmd ( ) 以生成一个以随机数为前缀的 1-30 数字列表,然后使用随机数作为键cmd /v:on /c "...."
对该列表进行排序 ( )。sort
排序后,more +25
用于跳过列表中的前 25 个数字,然后,afor /F
用于跳过最后 5 行,从中取出第二个标记(行包含随机数和 1-30 的数字)和将其回显到控制台
于 2013-11-12T07:20:22.740 回答
1
使用RANDOM
——这就是你要找的东西。
RANDOM
给出 和 之间的0
数字32767
。
例子:
set /a num=%random%
echo.%num%
这将输出一个介于0
和之间的数字32767
。
但是,如果您想减少该数字,请执行以下操作:
set /a num=%random% %%5
echo.%num%
这将输出一个介于0
和之间的数字4
。
在您的情况下(范围1
为30
),请执行以下操作:
set /a num1=%random% %%30 +1
set /a num2=%random% %%30 +1
set /a num3=%random% %%30 +1
set /a num4=%random% %%30 +1
set /a num5=%random% %%30 +1
echo %num1%
echo %num2%
echo %num3%
echo %num4%
echo %num5%
希望能帮助到你!:D
于 2013-11-12T04:57:54.000 回答