我有一個批次腳本,可以產生 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