1. 程式人生 > >bat中生成隨機數

bat中生成隨機數

批處理、Bat 產生指定範圍隨機數字的程式碼,需要的朋友可以參考下下

最近研究批處理命令,偶然發現,居然還有隨機數,在此之前,是未敢想過。
說到隨機數,不同的軟體都有隨機函式的功能,使用方法大體類似,但卻有著區別。
本文,給您介紹一下MS-DOS中的批處理命令random的用法及例項。

一、random的取值範圍

要使用random,必須將其當作一個變數來使用,這樣才能得到值。
  開啟MS-DOS視窗,輸入如下程式碼,即可獲得值。

程式碼如下:

echo %random%

%random%可以產生0到65535之間的隨機數。

二、通過獲得一定範圍內的隨機數

通過一,我們知道,%random%可以產生0到32767之間的隨機數,但是,如何才能得到一定範圍內的隨機數呢?
  通用的演算法公式如下:
  通用的公式%random%%%(max-min+1)+min來產生[min,max]區間裡的隨機數,注:批處理中求模得用兩個%%符號。
  比如,我們想獲得4到12之間的隨機數,就可以這樣來使用,程式碼如下:

程式碼如下:

@REM 產生10個[4,12]間的隨機數
  @echo off
  REM 啟用延遲環境變數擴充套件
  setlocal enabledelayedexpansion
  REM 設定隨機數的最小和最大值以及求模用的變數
  set min=4
  set max=12
  set /a mod=!max!-!min!+1

for /l %%i in (1,1,10) do (
  REM 產生[min,max]之間的隨機數
  set /a r=!random!%%!mod!+!min!
   echo.
  echo 隨機數%%i:!r!
  )

三、其它例項

例項①:常用功能  
  生成1到100之間的隨機數

程式碼如下:

set /a RandomNumber=%random%%%100+1
  ::100是範圍數,1是底數即開始的數.(在bat 中使用),在CMD中會出錯.
  ::取隨機兩位數
  set /a d=%random:~0,2%
  echo %d%
  ::避免00
  set /a e=1%random:~0,2%-100
  echo %e% @echo off
  :loop
  set /a RandomNumber=1%random:-1%%random:-1%-99
  ::最大值100
  if %RandomNumber% LSS 35 goto loop
  ::小於35返回
  if %RandomNumber% GTR 75 goto loop
  ::大於75返回
  echo %RandomNumber%
  if “%RandomNumber%” == “50” pause
  goto loop

例項②:隨機獲取檔名

程式碼如下:

@echo off
  if “%1” NEQ “$” (
   for /f “tokens=1,2 delims=:” %%a in (’"%~0" $^|sort’) do @echo %%b
  ) else for /f “delims=” %%i in ('dir /b /a-d .mp3’) do @call :sub %%i
  goto :EOF:sub
  echo %random%:%

  goto :EOF

例項③:在一個文字中隨機取一行資料

程式碼如下:

@ECHO %DBG% OFF
  SETLOCAL ENABLEDELAYEDEXPANSION
  FOR /F “TOKENS=*” %%i IN (TEST.TXT) DO (SET /A h+=1 & SET r!h!=%%i)
  SET /A s=%RANDOM%%%%h%+1
  ECHO !r%s%!

相關推薦

bat生成隨機數

批處理、Bat 產生指定範圍隨機數字的程式碼,需要的朋友可以參考下下 最近研究批處理命令,偶然發現,居然還有隨機數,在此之前,是未敢想過。 說到隨機數,不同的軟體都有隨機函式的功能,使用方法大體類似,但卻有著區別。 本文,給您介紹一下MS-DOS中的批處理命令r

matlab生成隨機數的相關知識

col 分布 tla 隨機排序 均勻分布 隨機生成 matlab bsp rand randperm()函數: 功能:用於生成從1到N的隨機整數,並且沒有重復,它本質上是一個隨機排序的函數; 用法:1. randperm(n) 隨機生成從1到n的不重復的整數;

Linux生成隨機數

生成隨機數的方法有7種 1.通過時間獲取隨機數 1)date +%s (隨機生成10位數字)        用於獲得時間戳。        如果用它做隨機數,相同一秒的資料是一樣的。在做迴圈處理,多執行緒裡面基本不能滿足要求了。 2)date +%N (隨機

nodejs密碼加密生成隨機數

方法一: Math.random().toString(36).substr(2)執行後的結果就是11位數的隨機數 方法二: 1、定義函式 function randomWord(ra

C語言和java生成隨機數的原理和方法

C語言 一.函式 1:int rand(void) 該函式會產生一個[0,RAND_MAX]的偽隨機數,那什麼是偽隨機數? 相當於一個序列a1-an,第一次使用會返回a1, 第二次使用會返回a2….第n次返回an,這樣每次呼叫rand()都能產生一個不同

MATLAB生成隨機數方法總結

好久沒用MATLAB了,今天在利用MATLAB進行資料處理時,突然發現自己忘記了該如何產生自己需要的隨機數形式,於是又查了一通資料。現對其進行一個簡單的總結,供自己和大家以後參考: 1. randi

多執行緒生成隨機數序列重複問題的解決方法

使用過隨機數的程式設計師都知道在程式中並不能夠實現的真正的完全的隨機數函式。隨機數函式產生的是通過公式計算出來的一系列偽隨機數,這個公式會採用一個種子數計算出一個數,而該數將成為產生下一個數的種子數。基於產生隨機數的原理,兩次呼叫隨機數後產生的隨機數序列將是一樣的,顯然,這

C# 生成隨機數

guid ole 對象產生 brush div 代碼 就是 函數 next 生成1-100之間的隨機數: new Random().Next(1, 100) 但是輸出的結果是一樣的,因為Random調用無參的構造函數其實調用的是 有參的構造函數,傳遞的 默認值: Envi

【java 文件讀寫操作】 生成隨機數,寫入txt,然後從txt讀出

進行 rac 直接 生成隨機數 catch trace buffered 代碼 tac 1.把生成的隨機數寫入到文件中 1 public static void WriterFun(){ 2 //獲得路徑 3 String filep

從總數生成一定數量的隨機數

min 簡單的 IV 程序 sort random pri div port 最近需要一個入學選號的程序,通過Python可以快速的實現。xueWeiShu 表示學位數,baoMingShu 表示報名的總人數。 import random xueWeiShu = 100

如何在各種程式語言生成安全的隨機數

轉自:如何在各種程式語言中生成安全的隨機數?   生成安全的隨機資料指什麼?為什麼要生成安全的隨機資料?之前一些文獻中這並沒有很好得說明如何生成“安全”的隨機數。所以,這裡將介紹如何在下面的程式語言中安全地生成隨機數。 C/C++ Java .NE

js 生成一個四位的隨機驗證碼字串,請使用者按照驗證碼反覆輸入,直到輸入正確,提示驗證通過。 隨機數範圍:a-z 0-9 A-Z

//取隨機數驗證碼//1.要隨機的值放入到陣列中var arr = [0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','i''g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','

Raptor生成任意範圍的隨機數

1.問題背景     在Raptor中,有時候我們需要一些指定範圍的隨機數,但是我們從Raptor幫助檔案中可以發現,random產生[0,1)之間的隨機數,這顯然是不能滿足需要的,所以本篇教學探討怎麼生成任意範圍的隨機數。 幫助檔案中的random函式介紹

Delphi 生成指定範圍不重複的隨機數

剛開始學習Dephi,寫這個相當於學習筆記,有不正確的地方,請各位大神多多指教 生成指定範圍的不重複大的隨機數  指定隨機數的範圍,生成不重複的隨機數 while si < sum do                    //si 表示生成隨機數的個數  

JAVA利用Math.random生成隨機數

吹水環節:剛升大二 剛學習JAVA 此前學過C的基礎 據說寫部落格能幫自己複習 還能發現很多有相同經歷的人 完 我實在編不下去了 開始吧 之前沒寫過部落格 也不知道程式碼片怎麼用 我就先隨便寫了 如果有什麼不對的地方

JAVA如何隨機生成確定範圍隨機數

Java中生成確定範圍中的隨機數,有兩種方法: (1)使用util包下面的Random類,Random類中有一個nextInt()方法,用於生成隨機的整數。nextInt(int n),引數n表示0<=隨機數<n。所以在實際應用中,應該靈活使用。    

C#生成不重複隨機數

如果只是生成一個隨機數,C#中的Random函式就足夠用了,但如果需要生產若干個隨機數,且這些數不能重複,就需要自己來寫相應的方法了。 1.使用List<int>來儲存隨機數,List.Contain方法來判斷生成的隨機數是否已經存在 以在1-10中取5個不重複

java生成隨機數的一些簡單實現方法

random.nextInt(max)表示生成[0,max]之間的隨機數,然後對(max-min+1)取模。 生成範圍值: 方法1.以生成[10,20]隨機數為例,首先生成0-20的隨機數,然後對(20-10+1)取模得到[0-10]之間的隨機數,然後加上min=10

robot framework 下生成隨機數或是隨機字符串(萬能的evaluate)

cli val line src inf detail ora ati 軟件 今天剛剛學到生產隨機數或是隨機字符串的知識。記錄一下(轉發自WHACKW的專欄) 1、生成隨機數 首先在第一個用法的同時,介紹一下這個關鍵字。Evaluate有2個參數,一個是表達式,一個是模塊。

c++生成隨機數

b-s ron 需要 end nbsp rand int stream 默認 生成一個隨機數需要rand()函數來獲得隨機整數,使用rand()函數需要添加頭文件cstdlib。rand()生成的最大數由平臺決定的常輸,在vc++中最大數為32767。 rand()函數生