我有一个批处理脚本,可以生成从 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 批处理脚本
您可以使用批处理脚本视窗轻松完成这项任务,如下所述。
本质上这将...
- 使用PowerShell 的 获取随机数生成随机数的函数
- 随机数值将在
0000-9999
使用-Maximum
和-Minimum
参数的范围内使用“0”自定义说明符 - “{0:0000} -f $fRandom” 和电源外壳和 。网确保随机数值在前导零后添加,确保其始终有 4 位数字
结果是电源外壳随机数值
echo
作为输出用一个为/F循环获取执行的结果电源外壳脚本 (随机数),并将该结果保存为变量,以便在批处理脚本中根据需要使用 (
%RAND%
)
批处理脚本
如果随机数不能是带有前缀零的 4 位数字,如0001
、0011
或 ,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