隨機數
使用動態變數%Random%
,我們可以得到 0 到 32767 之間的隨機整數。例如:
echo %random%
顯然,這會返回一個從 0 到 32767 的整數。但有時我們希望它在特定範圍內,比如從 1 到 100。
生成特定範圍內的隨機數
這樣做的基本方法如下所示。
set /a result=(%RANDOM%*max/32768)+min
其中 max
是可以生成的頂部數字,min
是可以生成的最小數字。請注意,你不會獲得任何小數,因為 set /a
會自動向下舍入。要生成十進位制隨機數,請嘗試以下操作:
set /a whole=(%RANDOM%*max/32768)+min
set /a decimal=(%RANDOM%*max/32768)+min
echo %whole%.%decimal%
生成大於 32767 的隨機數
如果你試試
set /a whole=(%RANDOM%*65536/32768)+1
你最有可能獲得奇數的隨機數。
要生成大於 32767 的數字,這是一個更好的方法。
set /a result=%random:~-1%%random:~-1%%random:~-1%%random:~-1%%random:~-1%%random:~-1%
前面的程式碼從每個%random%
中提取 1 個字元。但這是故意的。
由於 random
號碼可以是一位數字,因此提取最後兩位數字將不起作用。這就是為什麼我們只提取最後一個字元。在這種情況下,我們有 6 %random:~-1%
,產生 999999
的最大值,而 000000
的最小值,你可能需要調整它以滿足你的需要。
偽
cmd.exe
根據 cmd
部分開始的時間生成種子,所以如果你幾乎同時開始 mutliple 部分,結果可能不夠隨機。