Batch file 编号生成器1-4 |批次
有一种制作数字生成器的简单方法。Batch file 编号生成器1-4 |批次,batch-file,random,Batch File,Random,有一种制作数字生成器的简单方法。 但我只希望生成的数字是1-4 以下程序需要太长时间才能获得输出 @echo off :RUN set /a Num=%random% if %num% LEQ 4 echo %num% goto :RUN 它运行%random%,直到小于4,这可能需要很长时间 您可以屏蔽随机值(和操作=和运算符)中的位,以检索较低的两个,获取[0,3]范围内的数字,并添加1以适应指定的范围 set /a "num=(%random% & 3) + 1" 或者,由于生
但我只希望生成的数字是1-4 以下程序需要太长时间才能获得输出
@echo off
:RUN
set /a Num=%random%
if %num% LEQ 4 echo %num%
goto :RUN
它运行%random%,直到小于4,这可能需要很长时间 您可以屏蔽随机值(
和
操作=和
运算符)中的位,以检索较低的两个,获取[0,3]范围内的数字,并添加1以适应指定的范围
set /a "num=(%random% & 3) + 1"
或者,由于生成的随机值使用15位,因此可以将其移位以仅检索两个高位
set /a "num=(%random% >> 13) + 1"
在这两种情况下都需要括号,因为+
运算符的优先级高于&
或>
运算符
您还可以使用Mod
操作(%
运算符)从除4中检索余数,也可以获取范围为[0,3]的数字
set /a "num=%random% %% 4 + 1"
%%
运算符(在批处理文件中,必须对%%
进行转义,使其成为%%
)的优先级高于+
运算符,因此这里不需要括号。查看for/?
的输出-特别是关于for/L
的部分。或者您想要一个介于1和4之间的无限循环数吗?set/a numbertween1和4=%random%%%4+1