目次
乱数を取得する
意外にも、バッチファイルには乱数が用意されています。乱数を利用するには、変数「%random%」を参照します。「%random%」には、0~32767までの数値がランダムに入っています。したがって、
1 |
echo %random% |
とすれば、0~32767までの数値をランダムで表示できます。以下のバッチファイル(random.bat)はランダムな数字を連続で表示するものです。
1 2 3 4 5 6 7 |
@echo off echo 1回目:%random% echo 2回目:%random% echo 3回目:%random% echo 4回目:%random% echo 5回目:%random% |
以下、実行結果です。
1から10までの乱数を取得する
前節では、0~32767までの数値をランダムで表示する方法を示しましたが、任意の範囲の数値をランダムで表示する方法を紹介します。そのためには、変数「random」に、「set」コマンドを使用して簡単な演算処理を行います。
例えば、0~10までの数値をランダムで取得したい場合は、変数「random」に「11」を掛けて「32767」で割ります。以下に、サンプルのバッチファイル(random_0-10.bat)を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@echo off rem 0から10までの乱数の生成 set /a ran1=%random%*11/32767 set /a ran2=%random%*11/32767 set /a ran3=%random%*11/32767 set /a ran4=%random%*11/32767 set /a ran5=%random%*11/32767 rem 乱数の表示 echo 1回目:%ran1% echo 2回目:%ran2% echo 3回目:%ran3% echo 4回目:%ran4% echo 5回目:%ran5% |
4行目から8行目の「set」コマンドでランダム変数「random」に「11」を掛けて「32767」で割っています。これで、0~11の数値をランダムに得ることができます。以下、実行結果です。
これと同様に、0~100までの数値をランダムに取得したい場合は、上記のバッチファイルの「11」の部分を「101」に変更すればよいでしょう(random_0-100.bat)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@echo off rem 0から100までの乱数の生成 set /a ran1=%random%*101/32767 set /a ran2=%random%*101/32767 set /a ran3=%random%*101/32767 set /a ran4=%random%*101/32767 set /a ran5=%random%*101/32767 rem 乱数の表示 echo 1回目:%ran1% echo 2回目:%ran2% echo 3回目:%ran3% echo 4回目:%ran4% echo 5回目:%ran5% |
以下、実行結果です。