生成仅 4 位数字的随机数

生成仅 4 位数字的随机数

我有一个批处理脚本,可以生成从 1 到 10000 的随机数。

我的批处理脚本

@echo off
cls
SET /A RAND=%RANDOM%%%10000+1
echo %RAND%
echo.
pause

电流输出

2532  (4 digits)

253   (3 digits)

25    (2 digits)

2     (1 digits)

预期成果

2432 (4 digits)

3431 (4 digits)

9282 (4 digits)

8812 (4 digits)

问题

我需要的随机数仅由 4 位数字组成,而不是 1 位、2 位或 3 位数字,并且始终是 4 位。

答案1

生成随机 4 位数字 Windows 批处理脚本

您可以使用批处理脚本视窗轻松完成这项任务,如下所述。

本质上这将...

  1. 使用PowerShell 的 获取随机数生成随机数的函数
    • 随机数值将在0000-9999使用-Maximum-Minimum参数的范围内
  2. 使用“0”自定义说明符 - “{0:0000} -f $fRandom”电源外壳。网确保随机数值在前导零后添加,确保其始终有 4 位数字

  3. 结果是电源外壳随机数值echo作为输出

  4. 用一个为/F循环获取执行的结果电源外壳脚本 (随机数),并将该结果保存为变量,以便在批处理脚本中根据需要使用 ( %RAND%)


批处理脚本

如果随机数不能是带有前缀零的 4 位数字,如00010011或 ,0111您可以更改-Minimum 1000就像这样,但随机数字1-999将被省略,因此1000-Minimum如果是这种情况,就是您想要使用的参数。

 @ECHO ON

 SET PSScript=%Temp%\~tmpRandom4Digit.ps1
 IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"

 ECHO $fRandom = Get-Random -Maximum 9999 -Minimum 0000>>"%PSScript%"
 ECHO $Random  = "{0:0000}" -f $fRandom>>"%PSScript%"
 ECHO ECHO $Random>>"%PSScript%"

 SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0 
 CD /D "%PowerShellDir%" 
 FOR /F "DELIMS=" %%A IN ('Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"') DO SET "RAND=%%A"

 echo %RAND%

 EXIT

更多资源

答案2

一个简单的解决方案是取四个随机生成的数字的最后一位数字

set "RAND=%random:~-1%%random:~-1%%random:~-1%%random:~-1%"

答案3

您可以使用我的批处理脚本:

@echo off
if "%1" == "/?" (
echo Usage:
echo.
echo random [min] [max]
echo random /?
echo.
echo Can be used to generate a random number between [min] - [max] and displays the output in the RDM variable.
echo./? can be used to display help
echo.
echo Examples:
echo.
echo random 1 5 - Generates a random number between 1 - 5
echo random /? - Displays help
)
if not "%1" == "/?" set /a rdm=(%random%*%2/32768)+%1

然后拖入 C:\Windows\System32 文件夹并输入“random /?”作为语法。

答案4

您只需要调整初始解决方案的最小值和范围。

@echo off
cls
SET /A RAND=%RANDOM%%%9000+1000
echo %RAND%
echo.
pause

相关内容