本記事では、バッチファイルの中で乱数を扱う方法を紹介します。
バッチファイルには、既に乱数を生成するための変数が用意されています。それがRANDOM変数で「%RANDOM%」でアクセスすることができます。
これを使うことで「0~32767」までのどれかの整数が得られます。また、結果は実行する度に変わります。以下のサンプルで動作を確認してみましょう。
@echo off
echo %RANDOM%
echo %RANDOM%
echo %RANDOM%
pause
実行1回目
実行ごとに異なる値が取得できており、その値のレンジが「0~32767」に収まっていることがわかります。
ただ、実用上は「0~32767」の範囲の乱数をそのまま使いたいというケースは少ないと思います。
特定の範囲で乱数を得たい場合には、乱数自体に(得たいレンジの上限+1)を掛けて、32767で割ってあげることで実現できます。例えば、以下のサンプルは以下の順番で乱数を出力します。NUMの値を変更することで、ある程度柔軟に乱数を実現することができます。
@echo off
set NUM=5
set /a RAND=%RANDOM%*%NUM%/32767
echo %RAND%
set NUM=10
set /a RAND=%RANDOM%*%NUM%/32767
echo %RAND%
set NUM=100
set /a RAND=%RANDOM%*%NUM%/32767
echo %RAND%
pause