[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
就知道生成随机数%random%,学习

TOP

  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 编辑 ]

TOP

切成两段,没有200
  1. @echo off
  2. :eo
  3. cls
  4. echo 1%random:~-2%
  5. pause
  6. goto :eo
复制代码

TOP

原帖由 wxcute 于 2008-9-15 12:57 发表
切成两段,没有200@echo off
:eo
cls
echo 1%random:~-2%
pause
goto :eo



%random:~-2%
不妥吧,如果随机出来的是一位数呢?那 %random:~-2% 不就出错了???

TOP

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

改成如下
  1. @echo off
  2. :eo
  3. cls
  4. echo 1%random:~-1%%random:~-1%
  5. pause
  6. goto :eo
复制代码

TOP

set /a num=%random%%%100+100

TOP

对代码
  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 编辑 ]

TOP

不知道这样对不对

@echo off
set a=%random%
set /a n=%a%%%100*2
echo %n%
pause

TOP

原帖由 suqili56 于 2008-12-6 13:47 发表
@echo off
set a=%random%
set /a n=%a%%%100*2
echo %n%
pause

楼上这个输出的貌似都是偶数吧

TOP

@echo off
set /a a=%random%%%101+100
echo %a%
pause

TOP

回复 2楼 的帖子

这个能取到200吗?好像是100到199吧

TOP

回复 26楼 的帖子

你是正确的
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我也来学习一下:
@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
1

评分人数

TOP

=====看来我的想法太复杂了

我想的方法是先random%%200然后把小于100的用if语句给剔除掉. .. .
setlocal enabledelayedexpansion

TOP

没有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
复制代码
(*^_^*)

TOP

返回列表