• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    批处理 数码雨代码解释
    做了一个批处理的数码雨,老题目了

    主要给新手看
    主要用于了解批处理的一下知识
    1.随机变量的使用
    2.变量的叠加
    下面是源代码:
    复制代码 代码如下:

    @echo off
    color 0a
    :start
    set num=0
    set "echos= "
    :num
    set /a a1=%random%%%3
    if "%a1%" == "1" set "a1= "
    if "%a1%" == "2" set "a1= "
    if "%a1%" == "0" set /a a1=%random%%%2
    set echos=%echos%%a1%
    set /a num=%num%+1
    if "%num%" == "75" echo %echos%goto :start
    goto :num

    我来详细解释一下
    复制代码 代码如下:

    @echo off
    ::关闭回显(不用说了吧)

    color 0a
    ::这句的意思是改变批处理的字体颜色,0a就是颜色代码(具体可以看Color命令)

    :start

    set num=0
    ::定义(重新定义)num的变量,值为0(我们用这个变量来计算批处理循环的次数)

    set "echos= "
    ::定义(重新定义)echos的变量,值为一个空格

    :num

    set /a a1=%random%%%3
    ::这句就很重要了,这句可以说是整个数码雨代码的核心
    ::这句的意思是定义一个随机数,值在"3"以下
    ::要限制随机数的值,必须用set命令的/a开关
    ::比如我想定义一个num的变量,这个变量是随机数,切必须小于20,那代码就是
    ::set /a num=%random%%%20
    ::以上是完整的代码,如果没有使用/a开关写成了set num=%random%%%20
    ::那么就会出现错误

    if "%a1%" == "1" set "a1= "
    ::这句意思是如果变量a1(也就是上一句的随机变量)值是1的话那么a1的值就是一个空格
    ::Ps(这里我有必要说一下)
    ::我们程序的目的是模拟数码雨
    ::大家也许也看过数码雨,数码雨不是全是0和1,中间也是有空隙的,这句就是为了达到这个目的
    ::下面一句也是同样的目的
    ::最后还有一点要提
    ::不知大家发现没有我们之前的语句我没有用双引号如set num=0
    ::而这句 set "a1= " 却用了双引号,这是为什么呢
    ::其实,之前的语句set num=0,也可以改为set "num=0"
    ::这样似乎显得比较标准,是不是 set "a1= " 也可以改为 set a1= 呢
    ::答案是"No"
    ::因为set a1=这句就算你在语句后面加入了空格,批处理也不会去识别
    ::导致了a1的值为空,在批处理中,变量的值是不能为空的,所以我们用空格代替
    ::就写成 set "a1= "



    if "%a1%" == "2" set "a1= "
    ::如果a1值为2,那么a1的值就是一个空格


    if "%a1%" == "0" set /a a1=%random%%%2
    ::这句的意思是,如果随机变量a1的值为0,那么a1的值将随机取一个2以下的整数
    ::换句话说就是如果a1值是0,那么a1就随机选0和1两个数

    set "echos=%echos%%a1%"
    ::这里就是我所说的变量叠加
    ::之所以用引号是因为a1也有可能是空格
    ::其次就是echos=%echos% .. 我们现在只看这段
    ::这句话的意思是定义echos变量为 变量echos和变量a1的 值
    ::是不是有些晕
    ::我们在程序开始时就把echos变量定为一个空格了
    ::所以这次定义就吧echos定义为 一个空格+变量a1
    ::是不是清晰了点?
    ::我们用实例来吧
    ::变量echos现在是一个空格我们用[空格]代替
    ::我们再假设变量a1是数字1
    ::那么这次变量就是把 echos定义为 [空格]+1
    ::所以语句执行后echos 的值就是 一个空格然后是数字1
    ::对吧...清晰了吧?这句其实就是变量叠加
    ::如果语句继续执行,那么echos 的值是 "[空格]1" 吧?
    ::然后程序再次执行a1的值假设是数字2
    ::那么set "echos=%echos%%a1%"的意思就是
    ::定义变量echos的值为 "[空格]1" + 数字2,也就是 "[空格]12"
    ::.....

    set /a num=%num%+1
    ::这句意思是变量num的值加一(也就是循环了一次)

    if "%num%" == "75" echo %echos%goto :start
    ::当循环执行以上语句了75次后显示一次叠加的变量echos
    ::换句话说就是循环以上语句75次后显示变量echos


    goto :num
    ::跳转到标签num

    附Color命令各类颜色代码
     
    您可能感兴趣的文章:
    • bat实现的模仿黑客帝国里面的数码雨
    • 黑客帝国数字雨效果VC6源代码分享
    • jQuery模拟黑客帝国矩阵效果实例
    • js仿黑客帝国字母掉落效果代码分享
    • JS实现黑客帝国文字下落效果
    • 批处理实现乱雨纷飞(黑客帝国特效)
    上一篇:windows服务操作之删除服务 批处理实现
    下一篇:批处理 远程控制
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    批处理 数码雨代码解释 批处理,数码,雨,代码,解释,