[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 dosbat 于 2011-4-20 21:53 编辑

呵呵 代码如下 希望高手点评下 看有哪里写的不合适的地方
菜鸟一个 呵呵 代码如下:
  1. @echo off&color 0a
  2. set max=200,min=100
  3. for /l %%i in (1,1,100) do (
  4.                 ::call调用的时候不要忘记:
  5. call :rand %%i %max% %min%
  6. )
  7. pause&goto exit
  8. ::  :rand函数的定义
  9. :rand
  10. set /a ran=%random%%%(%2-%3+1)+%3
  11. echo 第%1个随机数:%ran%
  12. goto :eof
  13. :exit
  14. exit
复制代码
附带我对call的一些粗浅的理解:
call :标号  【参数列表】 注意我代码中的%1代表:rand这个函数的第一个参数,也就是for循环里面的%%i
其他依次类推 特别注意的是%0代表:rand本身而不是第一个参数 呵呵 刚开始我也犯了这个错误:用%0来引用第一个参数
例外我觉得call的使用有点类似于汇编中的call

TOP

好,学习啦     积累的少啊
haohaoxuexi

TOP

  1. @echo off
  2. ::setlocal enabledelayedexpansion
  3. :1
  4. set a=%random%
  5. if %a% lss 100 goto :1
  6. if %a% gtr 200 goto :1
  7. echo %a%
  8. pause>nul
复制代码
菜鸟一个,潜心学习
总有学会的一天

TOP

高手如云啊

TOP

这个不错,挺简的!
享受批处理的神奇!!!

TOP

本帖最后由 welllib 于 2011-6-24 09:05 编辑
  1. @echo off
  2. :start
  3. if %random% lss 10 (echo. 10%random%) else (echo. 1%random:~-2%)
  4. ping -n 2 127.1 >nul
  5. goto start
复制代码
以下为主要代码解释,方便第一次接触BAT的:
(1) if %random% lss 10 (echo. 10%random%) else (echo. 1%random:~-2%)
    如果随机a数小于10,显示10a,否则显示1(随机数后两位)
    例如:随机数为2,显示102;随机数为13234,显示134
(2) ping -n 2 127.1 >nul
延时器,ping 127.1两次
两次ping之间时间间隔为1s

TOP

改成如下@echo off
:eo
cls
echo 1%random:~-1%%random:~-1%
pause
goto :eo
wxcute 发表于 2008-10-1 19:32

这个方法不错,哈哈,我怎么就没想到呢

TOP

  1. @echo off
  2. set/a str=%random%%%200
  3. if %str% geq 100 echo %str%
  4. pause>nul
复制代码
[color=BLUE]一切只为了批处理&DOS[/color]

TOP

利用批处理不能处理小数的性质写一个:
  1. @echo off
  2. @set /a num=%random%/325+100
  3. @echo %num%
  4. @pause >nul
复制代码

TOP

本帖最后由 qc5111 于 2011-9-8 01:13 编辑
  1. @echo off
  2. set /a a=%random%%%100+100
  3. echo %a%
  4. pause
复制代码
1

评分人数

    • cjiabing: 注意代码超过一行要用[code]括起来PB -1

TOP

哦,知道了

TOP

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

TOP

200以内的随机数
  1. @echo off
  2. set/a num=%random%%%200
  3. echo %num%
  4. pause
复制代码

TOP

  1. @echo off
  2. :1
  3. set p=%random%
  4. if  %p%lss100 goto 1
  5. if  %p% lss 200 (
  6.     echo %p%
  7.     ) else (
  8.     goto 1
  9. )
  10. pause
复制代码

TOP

  1. @echo off
  2. :a
  3. set/a w=%random%%%200
  4. if not %w% lss 100 (echo %w%) else goto a
  5. pause
复制代码

TOP

返回列表