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)

질문

난수는 1, 2, 3자리가 아닌 4자리로만 구성되어야 하며 항상 4여야 합니다.

답변1

임의의 4자리 숫자 Windows 배치 스크립트 생성

다음과 함께 배치 스크립트를 사용할 수 있습니다.윈도우아래에서 설명하는 것처럼 이 작업을 쉽게 완료할 수 있습니다.

본질적으로 이것은 것입니다. . .

  1. 사용파워셸의 무작위로 가져오기난수를 생성하는 함수
    • 난수 값은 및 매개 변수를 0000-9999사용하는 범위에 속합니다.-Maximum-Minimum
  2. 사용"0" 사용자 지정 지정자 - "{0:0000} -f $fRandom" ~와 함께파워셸그리고 .그물난수 값 앞에 0이 추가되어 항상 4자리가 되도록 보장합니다.

  3. 결과는파워셸난수 값이 echo출력으로 사용 됩니다.

  4. 사용/F에 대해실행된 결과를 가져오는 루프파워셸스크립트(난수) 그 안에 결과를 저장하고 필요에 따라 배치 스크립트에서 사용할 변수로 저장합니다( %RAND%).


배치 스크립트

난수가 , , 와 같이 앞에 0이 붙은 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

간단한 해결책은 무작위로 생성된 4개의 숫자 중 마지막 숫자를 취하는 것입니다.

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

관련 정보