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 バッチ スクリプト
バッチスクリプトを使用すると、ウィンドウズ以下で説明するように、このタスクを簡単に完了できます。
本質的には、これは...
- 使用PowerShellの ランダム取得乱数を生成する関数
- 乱数値は、およびパラメータを
0000-9999
使用して、の範囲になります。-Maximum
-Minimum
使用"0" カスタム指定子 - "{0:0000} -f $fRandom" とパワーシェルそして 。ネット乱数値の先頭にゼロが追加され、常に4桁になるようにする
その結果、パワーシェル
echo
出力として乱数値が出力される使う/F の場合実行された結果を取得するループパワーシェル脚本 (乱数)をその中に保存し、その結果を変数として保存して、必要に応じてバッチスクリプトで使用します(
%RAND%
)
バッチスクリプト
乱数が0001
、、、0011
またはのように0が前に付く4桁の値にできない場合は、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