產生僅 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 位元值(例如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

相關內容