我正在使用批处理文件制作随机数生成器

问题描述 投票:2回答:1

我正在制作一个带有批处理文件的随机数生成器,有时它会出错并说“00”,并冻结。数字的种子是当前毫秒。有什么想法要帮忙吗?

我已经尝试使用IF语句来检查种子/数字是否高于某个值,正如您在代码的:calc和:calc2部分中看到的那样,但在生成6个数字中的5个之后仍然是错误。继承人代码:

@echo off
:seed
set seed=%time%
set result=%seed:~9,10%
echo seed:%result%
goto calc
:calc
echo generating...
set /a "num=%result%*%result%"
if %num% lss 1000 goto seed
set num=%num:~2,3%
cls
goto say
:say
cls
echo your number is %num%
echo press a key for another number
pause >nul
goto calc2
:calc2
cls
echo generating...
set /a "num=%num%*%num%"
if %num% lss 1000 set /a "num=%num%*2"&&goto calc2
set num=%num:~2,3%
goto say

我还希望所有输出的数字都是2位数字,但有些长度是3位数。

batch-file random cmd numbers
1个回答
1
投票

继承完成(现在正在工作)的代码:

@echo off
:seed
set seed=%time%
set result=%seed:~9,10%
echo seed:%result%
goto calc
:calc
echo generating...
set /a "num=%result%*%result%"
if %num% lss 1000 goto seed
set num=%num:~2,3%
cls
goto say
:say
cls
echo your number is %num%
echo press a key for another number
pause >nul
goto calc2
:calc2
cls
echo generating...
set /a "num=%num%*%num%"
if %num% lss 1000 set /a "num=%num%*2"&&goto calc2
set num=%num:~2,3%
set /a "num=%num%+1"
goto say
© www.soinside.com 2019 - 2024. All rights reserved.