2

我需要一个批处理文件随机器从 1-30 中随机选择 5 个数字,然后输出它们。我进行了研究,没有发现任何对我有用的东西。我是初学者,所以如果您可以简化代码并对其进行解释,以便以后如果我再次需要它可以重现它。

4

2 回答 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


在您的情况下(范围130),请执行以下操作:

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 回答