分享

【按键思路】看了挺多教程,却写不好一个脚本

 家有仙妻宝宝 2021-07-02

大家好,我是3分钟学堂的郭立员,今天说一下写脚本的思路问题,平时有很多新手朋友问我按键问题,发现不少初学脚本的朋友看了很多教程和案例,自己去写脚本的时候却无从下手,或者写着写着就发现有些功能不知道怎么加到脚本中。

两点主要原因

①不会把手动操作思路拆分并且转化为脚本语言

②不知道怎么实现某个具体操作

脚本语言

这里所说的脚本语言并不是专指某个编程语言,而是指脚本能够“听得懂”的话,脚本很傻,你说1,它就执行1,不会自己执行2,所以脚本语言尽量要写得严谨。

举个例子,你要打开QQ,你要怎么告诉脚本:

错误:帮我点开QQ

正确:通过找图获取QQ图标的位置坐标,点击这个坐标

简单脚本案例讲解

比如要实现这样一个简单的功能:

“生成100个脚本激活码,每个激活码由16位数字字母(区分大小写)组成”

我的思考过程

第一步:想一想可能会用到命令,因为是生成100个,涉及到多次重复的操作,会用到for循环命令,激活码不能是一样的,所以会用到Rnd随机数命令,初步判断会用到这两个命令。

第二步:拆分问题,转化成脚本语言

生成100个脚本激活码 => 生成一个激活码,循环100次

生成1个16位激活码 => 生成1位激活码,循环16次

生成1位激活码 => 从0-9和a-z和A-Z这62个字符中随机选一个

把一个问题拆分成一个个步骤,然后再把这些步骤转成脚本语言。写的时候就要从细节开始:

①从0-9和a-z和A-Z这62个字符中随机选一个,转化成脚本语言:

有一个字符串一共62个字符:

'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

需要一个随机数,随机的范围是1-62,得到的随机数作为提取某个字符串在整个字符串序列的位置序号。比如随机数是15,那么就提取第15个字符串的e。

这里提取指定位置的字符串又涉及到提取命令,可以用mid或者StrGetAt,关于这两个命令又有知识点的延伸,就是中文用utf8.mid或者utf8.StrGetAt,如果是英文、数字或者字符,带不带utf8都可以。

那么这部分就是细节部分了,需要平时多积累,对于命令要熟悉掌握,相似命令要学会归类处理。

按照上面说的写一下代码:

Dim str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'Dim rndnum=int(62*rnd()+1)Dim rndstr=mid(str,rndnum,1)TracePrint rndstr

②生成1位激活码,循环16次

生成1位随机我们在上一步已经写完了,下面是循环16次,那么哪些代码需要循环呢?

上面代码一共是4行:第1行是定义字符串不需要循环,剩下的3行都需要循环。哪些需要循环,哪些不需要循环,在写代码前一定要想好,不要无脑的把所有内容都循环,或者漏掉一些要循环的内容。

Dim str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'For 16    Dim rndnum=int(62*rnd()+1)    Dim rndstr=mid(str,rndnum,1)    TracePrint rndstrNext

当我们运行以后会发现虽然生成了16个随机字符,但是它们是分散的。

图片

我们要把它们连在一起,这里又涉及到一个知识点:字符串的追加。

变量=变量&内容

每次循环就追加一个内容到随机序列里面,循环结束调试输出整个随机序列。

Dim str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'Dim RndlineFoR 16    Dim Rndnum=int(62*Rnd()+1)    Dim RndstR=mid(stR,Rndnum,1)    Rndline=Rndline&RndstRNextTRacePRint Rndline

③ 生成一个激活码,循环100次

又是一个循环的操作,需要注意的就是哪些需要循环,哪些不需要。

Dim str='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'For 100 Dim Rndline='' FoR 16 Dim Rndnum=int(62*Rnd()+1) Dim RndstR=mid(stR,Rndnum,1) Rndline=Rndline&RndstR Next TRacePRint RndlineNext

当你直接把一个激活码循环100次以后,会发现脚本差点崩溃,因为啥?因为每一次循环,激活码是存在同一个变量中,如果生成新的激活码,就要把原来的激活码清空,否则会一直追加,激活码会越来越长,直到脚本奔溃。

所以又有新的知识点:清空变量

变量=''

当然变量里面的内容是临时保存,如果想要导出激活码,我们可以用写入文本命令,每生成一个激活码,就写入到文本里面,这样就可以长期保存了。

总结

我们在写脚本之前不要着急,先把操作思路拆分,然后转化成脚本语言,在把每一个细节涉及到的知识点想一下。

整个过程先在大脑里面过一遍,想通了以后在去写代码。

细节问题

当我们写代码时有些命令不知道怎么办,在命令库里面搜索

图片

不需要你记住所有命令都怎么写,能够做到知道有哪些命令即可,用的时候在这里搜索,还有就是看得懂命令介绍。

新手怎么提高

想要提高没有捷径,多看、多写、多练、多思考。

如果有人告诉你只需“某某”时间就能精通按键精灵,肯定忽悠人的。

能够速成的人是有,但是一般初学者做不到,要么天赋异禀,要么有其他编程语言的基础,如果这两点都不具备,那么就踏踏实实的去学吧。

作者:郭立员丨3分钟学堂

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多