找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: youxi01

批处理如何产生一个100-200 之间的随机数?

[复制链接]
发表于 2008-9-12 13:19:42 | 显示全部楼层
就知道生成随机数%random%,学习
发表于 2008-9-12 14:43:56 | 显示全部楼层

  1. @echo off
  2. :redo
  3. set num=%random%
  4. if %num% lss 100 goto redo
  5. if %num% gtr 200 goto redo
  6. echo %num%
  7. set num=
  8. pause>nul
复制代码

-------------------------------------------------------------------------------------
还是set /a w=%random%%%100+100这个简洁

[ 本帖最后由 batbird 于 2008-9-12 15:06 编辑 ]
发表于 2008-9-15 12:57:45 | 显示全部楼层
切成两段,没有200
  1. @echo off
  2. :eo
  3. cls
  4. echo 1%random:~-2%
  5. pause
  6. goto :eo
复制代码
发表于 2008-9-28 19:52:24 | 显示全部楼层
原帖由 wxcute 于 2008-9-15 12:57 发表
切成两段,没有200@echo off
:eo
cls
echo 1%random:~-2%
pause
goto :eo



%random:~-2%
不妥吧,如果随机出来的是一位数呢?那 %random:~-2% 不就出错了???
发表于 2008-10-1 19:32:48 | 显示全部楼层

回复19数,确实是,多谢指正。

改成如下
  1. @echo off
  2. :eo
  3. cls
  4. echo 1%random:~-1%%random:~-1%
  5. pause
  6. goto :eo
复制代码
发表于 2008-12-6 13:10:46 | 显示全部楼层
set /a num=%random%%%100+100
发表于 2008-12-6 13:28:34 | 显示全部楼层
对代码
  1. set /a num=%random%%%100+100
复制代码
测试发现小问题一个,不能得到200,数值范围为100-199
将代码修改为
  1. set /a num=%random%%%101+100
复制代码
可以得到完整的100-200

[ 本帖最后由 firewolf85 于 2008-12-6 13:40 编辑 ]
发表于 2008-12-6 13:47:15 | 显示全部楼层

不知道这样对不对

@echo off
set a=%random%
set /a n=%a%%%100*2
echo %n%
pause
发表于 2008-12-7 15:11:17 | 显示全部楼层
原帖由 suqili56 于 2008-12-6 13:47 发表
@echo off
set a=%random%
set /a n=%a%%%100*2
echo %n%
pause

楼上这个输出的貌似都是偶数吧
发表于 2008-12-12 11:23:05 | 显示全部楼层
@echo off
set /a a=%random%%%101+100
echo %a%
pause
发表于 2008-12-12 11:25:29 | 显示全部楼层

回复 2楼 的帖子

这个能取到200吗?好像是100到199吧
发表于 2008-12-12 13:19:00 | 显示全部楼层

回复 26楼 的帖子

你是正确的
发表于 2008-12-19 09:30:34 | 显示全部楼层
我也来学习一下:
@echo off
color 1a &mode con cols=35 lines=10
:loop
cls
set /a w=%random% %%101+100
echo.&echo.&echo.&echo.
echo         产生的随机数是:%w%
ping -n 2 127.1>nul
goto loop

评分

参与人数 1PB +2 收起 理由
wxcute + 2 应该没错

查看全部评分

发表于 2009-1-28 17:30:54 | 显示全部楼层
=====看来我的想法太复杂了

我想的方法是先random%%200然后把小于100的用if语句给剔除掉. .. .
发表于 2009-3-29 22:57:34 | 显示全部楼层
没有200:

  1. @echo off
  2. :start
  3. cls
  4. set /a a=%random%%%10
  5. set /a b=%random%%%10
  6. echo 1%a%%b%
  7. pause&goto start
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 03:14 , Processed in 0.020922 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表