平時(shí)的小工作用用批處理也是挺不錯(cuò)的,隨手備份點(diǎn)代碼。
cmd里有個(gè)環(huán)境變量%random%可以產(chǎn)生0到32767之間的隨機(jī)數(shù),這樣就可以用通用的公式%random%%%(max-min+1)+min來(lái)產(chǎn)生[min,max]區(qū)間里的隨機(jī)數(shù),批處理中求模得用兩個(gè)%%符號(hào),例子:
@REM 產(chǎn)生10個(gè)[4,12]間的隨機(jī)數(shù)
@echo off
REM 啟用延遲環(huán)境變量擴(kuò)展
setlocal enabledelayedexpansion
REM 設(shè)置隨機(jī)數(shù)的最小和最大值以及求模用的變量
set min=4
set max=12
set /a mod=!max!-!min!+1
for /l %%i in (1,1,10) do (
REM 產(chǎn)生[min,max]之間的隨機(jī)數(shù)
set /a r=!random!%%!mod!+!min!
echo.
echo 隨機(jī)數(shù)%%i:!r!
)
一定要用setlocal enabledelayedexpansion來(lái)啟用延遲環(huán)境變量擴(kuò)展,然后用!符號(hào)而不是%符號(hào)來(lái)訪問(wèn)環(huán)境變量,否則for循環(huán)里可能會(huì)產(chǎn)生一樣的隨機(jī)數(shù),或者有其它問(wèn)題
PS:我發(fā)現(xiàn),這似乎不是隨機(jī)數(shù),因?yàn)殡S機(jī)數(shù)總是按照增大 或者 較小進(jìn)行的.如果這樣的話,其實(shí)用date 和time 的批處理變量來(lái)顯示,不過(guò)time的冒號(hào)要命啊...要單獨(dú)處理冒號(hào).但是麻煩,還是%random%的簡(jiǎn)單.
我之所以要找這么個(gè)東西,是為了備份數(shù)據(jù),批處理備份,但是不產(chǎn)生隨機(jī)數(shù)的話,文件名不唯一就要覆蓋數(shù)據(jù)了.所以找了這么個(gè)隨機(jī)數(shù)產(chǎn)生器:核心 echo %random%
聯(lián)系客服