最近研究批处理命令,偶然发现,居然还有随机数,在此之前,是未敢想过。
说到随机数,不同的软件都有随机函数的功能,使用方法大体类似,但却有着区别。
本文,给您介绍一下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%!
相关推荐
4. **字符集选择**:为了确保密码包含特定类型的字符(大写字母、小写字母和数字),可能需要创建一个包含这些字符的字符串,并从中随机选取。 5. **条件判断**:确保生成的每个密码都满足条件,如果某个密码不满足...
在给定的压缩包文件中,包含两个批处理脚本:`sleep.bat` 和 `random.bat`,分别实现了睡眠(sleep)功能和生成随机数的功能。这两个功能在自动化测试和工程应用中非常实用。 ### 睡眠(Sleep)功能 在批处理脚本...
2. **坐标定位:** 使用`gotoxy()`函数来实现光标在屏幕上的定位,这对于绘制字符雨至关重要,但需要注意的是`gotoxy()`是非标准的,不同的编译环境可能会有不同的实现方法。 3. **字符颜色设置:** 通过ANSI转义...
把指定文件中的指定位置的数字相加.cmd 把首行和尾行互换.cmd 拼接相临的奇偶行文本内容.cmd 提取两个文件内容的不同之处.cmd 文本内容互换.bat 显示只有指定个数字符的行.cmd 显示某两个字符及其之间的字符.cmd ...
删除指定路径下指定文件及文件夹外的所有文件及文件夹2.bat 删除某些文件夹之外的目录.cmd 删除重复行.cmd 判断光驱是否可用.bat 判断光驱里有无光盘.bat 判断分区格式.bat 判断是文件还是文件夹.cmd 判断驱动器类型...
24. 方法重写:在子类中,当一个方法与父类的方法具有相同的名称、返回类型和参数列表时,称为方法重写,目的是覆盖父类的行为(正确答案:在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和...
这个工具的主要功能是生成指定数量的16位十六进制数字,这些数字范围从0到F,即0到15。以下将详细阐述其核心知识点: 1. **C#基础**:C#是一种现代、类型安全的编程语言,由微软开发,用于构建跨平台的应用程序。它...
在VC6.0下,我们可以编写函数来随机生成指定位数的素数,例如1到100位。这个过程可能需要多次尝试,因为素数测试(如米勒-拉宾素性检验)是概率性的。 3. **欧拉函数φ(n)** 欧拉函数φ(n)表示小于等于n且与n互质...
- **示例**: `FOR /L %%i IN (1,1,10) DO echo %%i` 循环打印数字1到10。 **8. 条件判断** - **功能**: 根据条件执行不同的命令。 - **示例**: `IF %ERRORLEVEL% EQU 0 (ECHO 成功) ELSE (ECHO 失败)` **9. 参数...
- 雷区生成:随机在指定大小的网格内布置一定数量的雷,确保相邻格子的雷数计算正确。 - 点击与标记:玩家可以点击或右键标记格子,模型会根据操作更新游戏状态。 - 数字提示:每个格子根据周围雷的数量显示相应...
RNG是一个算法,可以产生无法预测的数字序列,以此来决定谁是幸运儿。在抽奖软件中,RNG的公正性和随机性至关重要,通常需要通过专业测试和认证以确保其无偏性。 除此之外,抽奖软件通常具有以下功能: 1. 参与者...
8. ASCII码:ASCII码是美国标准信息交换代码,ASCII码最小的是数字5,因为ASCII码按照数值顺序排列,数字先于大写字母,大写字母先于小写字母。 9. 光驱速度:四倍速光驱的读取速度是600KB/S,速度通常以倍数表示,...
16. 批处理文件显示:在DOS环境下,使用TYPE命令可以显示文本文件的容,所以要显示当前目录下所有批处理文件(.BAT文件)的容,应该使用命令TYPE *.BAT(A. TYPE *.BAT)。 17. Access窗体和打印:窗体页眉只在第一...
/p 即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r 找到坏扇区并恢复可读取的信息。隐含着 /p 参数。 注意 Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录...
- UUID由两个部分组成,每个部分都是一串十六进制数字:时间戳和节点ID。 #### String,StringBuilder,StringBuffer三者的区别 - **String**:不可变字符串,每次修改都会创建新的String对象,因此在频繁修改的...
3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP 中均可使用,但在 Windows 98 中却没有集成这一个工具。 4. explorer-------打开...
能批量取某列存储格按指定长度的数字并允许特定数字串的获取,例如M76000,RC76000等。而小于指定长度的数字串则不予获取。 【快速选定数据】 可瞬间选中与用户指定内容相同的当前工作表中所有存储格,方便选定、...
能批量取某列存储格按指定长度的数字并允许特定数字串的获取,例如M76000,RC76000等。而小于指定长度的数字串则不予获取。 【快速选定数据】 可瞬间选中与用户指定内容相同的当前工作表中所有存储格,方便选定、...
- **方法**: 通过使用 JMeter 的变量和函数来实现跨线程的数据共享。 - **示例**: 在一个线程组中设置变量,在另一个线程组中引用该变量。 **10.8 时间处理相关操作** - **技巧**: - **获取当前系统时间**:使用...
- **解析**:自动批处理文件(如Windows下的`autoexec.bat`)通常需要放置在启动盘的根目录中才能在系统启动时自动运行。因此,此题的答案为`C.启动盘的根目录中`。 #### 题目8:桌面背景的排列方式 - **知识点**:...