VBS学习日记(二) 基础知识
VBScript 基础知识
一、变量
1、全部单引號后面的内容都被解释为凝视。(在vbsedit中ctrl+m凝视,反凝视ctrl+shift+m)
2、在 VBScript 中,变量的命名规则遵循标准的命名规则,须要注意的是:在 VBScript 中对变量、方法、函数和对象的引用是不区分大写和小写的。在申明变量时,要显式地申明一个变量,须要使用keyword DIm 来告诉 VBScript 你要创建一个变量,并将变量名称跟在其后。申明多个同类型变量,能够用逗号分隔。注意:VBScript
中不同意在申明变量的时候同一时候给变量赋值。可是同意在一行代码内同一时候对两个变量进行赋值,中间用冒号分隔。
3、你能够使用 Option Explicit 来告诉宿主变量必须先声明后使用。
4、VBScript 在定义时仅仅有一种变量类型,在实际使用中须要使用类型转换函数来将变量转换成对应的变量类型。
Cbool 函数将变量转换成布尔值;
Cbyte 函数将变量转换为 0 到 255 之间的整数。
Ccur 函数、Cdbl 函数和 Csng 函数将变量转换为浮点数值,前者仅仅精确到小数点后四位,后两者要更加精确,数值的范围也要大的多。
Cdate 函数将变量转换为日期值。
Cint 函数和 Clng 函数将变量转换为整数,后者的范围比前者要大的多。
Cstr 函数将变量转换为字符串。
二、数组
数组的定义与变量很类似,仅仅须要在变量后描写叙述这个数组的个数和维数。须要注意的是:数组的下标总是从 0 開始,而以数组定义中数值减一结束。也就是说你以要定义一个有十个数据的数组,将这样书写代码: dIm array (9),相同,当你要訪问第五个元素时,实际的代码是 arr ay(4)。当然,你能够通过不指定数组的个数和维数来申明动态数组。等到数组的个数和维数固定后,使用keywordredim 来改变数组。注意,在改变数组的大小时,数组的数据会被破坏,使用keyword
preserve 来保护数据。
比如:
RedIm 空格 preserve 空格 array 括号个数逗号维数括号
三、操作符
在 VBScript 运算符中,加减乘除都是我们经常使用的符号,乘方使用的是 ^ ,取模使用的 Mod。在比較操作符中,等于、小于、大于、小于等于、大于等于都与我们经常使用的符号是一致的,而不等于是小于和大于连用。
逻辑运算符为:和操作—>AND 非操作—>NOT 或操作—>OR;
你能够使用操作符 + 和操作符 & 来连接字符串,一般使用&操作符;
另外另一个比較特殊的操作符 Is 用来比較对象,比如button对象,假设对象是同一类型,结果就是真,假设对象不是同一类型,结果就是假。
四、条件语句
主要有 if……then 语句和 selectcase 语句两种形式
在 if……then 语句中,其基本形式为:
If 条件 then
处理条件的语句;
……
Endif
基本形式仅仅能对单个条件进行验证,假设有两个条件,则须要在基本形式中加入单行语句 else ,假设还有很多其它的条件须要验证,则须要加入语句Elseif 条件 then处理条件语句
在 selectcase 语句中,其基本形式为:
Select case 变量
Case 条件值
处理条件语句
并对上两句进行反复
最后一句应为
case else
处理语句
当然不要忘记将条件结束语句 End select 放在最后一行
注意:在运行字符串比較时,须要特别注意大写和小写,普通情况下,我们在比較前,使用 lcase函数将字符串转换成小写,使用 ucase 函数将字符串转换成大写大写。
五、循环控制语句
循环控制语句有 for ……next 循环、 for ……each 循环、 do……while 循环、 do……until 循环、 while循环五种形式。
在使用循环控制语句前,首先要对循环条件进行推断,假设循环次数是有固定次数的,那么使用 For……next 循环,其结构为:
For 计数器变量=開始计数值 to 最后计数值
运行循环体
Next
假设是须要对数组或对象集合中的每个元素进行推断,则须要使用 for ……each 循环,其结构为:
For each 循环计数变量 in 要查看的对象或数组
运行处理语句
Next
注意:在上述两种循环中随时能够使用 exit for 来退出循环
假设你希望在条件满足时运行一段代码则使用 do……while 语句,结构为:
Do while 条件
运行循环体
Loop
假设你希望在条件不满足时运行代码,则使用 do……until 语句,结构为:
Do until 条件
运行循环体
Loop
当然,在这两种循环语句中,你能够使用 exit do 来退出循环最后一种循环语句是条件满足时一直运行循环,
While 条件
运行循环体
Wend
六、使用过程
经常使用的过程有两种,一种为函数,给调用者返回值,一种为子程序,无返回值,另一种叫事件的特殊子程序,用的比較少。
函数的基本定义方法为:
Function 函数名称(參数列表)
函数代码
函数名称=某值 ‘用来返回值
end function
子程序一些都类似,只是没有返回值
注意:虽然在定义子程序的时候,參数列表要加括号,但在调用子程序的时候,參数列表不加括号,括号仅仅在函数中使用。另外,子程序不能在表达式中使用。而函数仅仅能出如今赋值语句的右边,或者表达式中,函数不能直接使用,假设必须直接使用函数,则必须使用
call 语句调用,并取消返回值。
VBS学习日记(二) 基础知识的更多相关文章
- pwn学习日记Day7 基础知识积累
知识杂项 strncpy(char s1,const char s2,int n); 其中有三个参数分别表示目标字符串s1,源字符串s2,拷贝长度.意思是将s2指向的字符串的前n个长度的字符放到s1指 ...
- pwn学习日记Day5 基础知识积累
知识杂项 int mprotect(const void *start, size_t len, int prot); mprotect()函数把自start开始的.长度为len的内存区的保护属性修改 ...
- pwn学习日记Day3 基础知识积累
知识杂项 msfVENOM:Msfvenom是msf框架配套的攻击载荷生成器. payload:有效载荷. payload:目标系统上渗透成功后执行的代码. Metasploit:一款开源的安全漏洞检 ...
- pwn学习日记Day9 基础知识积累
知识杂项 libc是Linux下的ANSI C的函数库. LOOKUP函数 数组形式:公式为= LOOKUP(lookup_value,array) 式中 array-包含文本.数字或逻辑值的单元格区 ...
- pwn学习日记Day8 基础知识积累
知识杂项 aslr:是一种针对缓冲区溢出的安全保护技术,通过对堆.栈.共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术 ...
- pwn学习日记Day6 基础知识积累
知识杂项 ELF:在计算机科学中,是一种用于二进制文件.可执行文件.目标代码.共享库和核心转储格式文件. char fgets(char buf, int bufsize, FILE stream); ...
- pwn学习日记Day2 基础知识积累
知识杂项 shell-storm.org的shellcode数据库 使用pwntools库把shellcode作为输入传递给程序,尝试使用io.interactive()与程序进行交互,发现可以执行s ...
- pwn学习日记Day1 基础知识积累
ida / od 窗口(针对od操作) 反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址.HEX 数据.反汇编.注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进 ...
- pwn学习日记Day4 基础知识积累
知识杂项 *:字符串重复 空指令NOP:\x90 cmp:是比较指令,cmp的功能相当于减法指令.它不保存结果,只是影响相应的标志位. xor:将两个操作数进行异或运算,并将结果存放到操作数1中. s ...
- 如何学习FPGA?FPGA学习必备的基础知识
如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA 基础知识 FPGA已成为现今的技术热点之一,无论学生还是工程师都希望 ...
随机推荐
- 10.7 android输入系统_Dispatcher线程情景分析_Reader线程传递事件和dispatch前处理
android输入系统C++最上层文件是com_android_serve_input_InputManagerService.cpp global key:按下按键,启动某个APP可以自己指定,修改 ...
- ArcGlobe三维开发之十九——GlobeControl与MapControl的二三维联动
实现思路:2D->3D,将当前MapControl的可视范围设置为GlobeControl中Extent属性的值:3D--->2D.获取当前GlobeControl的target和obse ...
- Android 利用an框架快速实现网络请求(含下载上传文件)
作者:Bgwan链接:https://zhuanlan.zhihu.com/p/22573081来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. an框架的网络框架是完全 ...
- 常用MVC框架
J2EE开常用的SSH或SSI框架,对应解决表示层.业务逻辑层.持久化层的问题,其中对表示层的解决方案最多,常见的有Struts1/2,Spring MVC等,实际上都是在最底层的Servlet规范中 ...
- gvim 窗口最大化启动
此文来源于vimer的程序世界 首先需要 gvimfullscreen.dll 文件 下载gvimfullscreen.dll 下载源码 之后只需要在vimrc中配置如下代码就可以按F11使Vim全 ...
- BAPC2014 C&&HUNNU11583:Citadel Construction(几何)
题意: 给出一系列的点,要求寻找最多4个点.使得组成一个面积最大的多边形 思路: 非常显然仅仅有两种情况.要么是三角形,要么是四边形 首先不难想到的是.先要把最外面的点都找出来,事实上就是找凸包 可是 ...
- nginx简介(轻量级开源高并发web服务器:大陆使用者百度、京东、新浪、网易、腾讯、淘宝等)(并发量5w)(一般网站apache够用了,而且稳定)
nginx简介(轻量级开源高并发web服务器:大陆使用者百度.京东.新浪.网易.腾讯.淘宝等)(并发量5w)(一般网站apache够用了,而且稳定) 一.总结 1.在连接高并发的情况下,Nginx是A ...
- 学习Numpy
1.什么是numpy NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多( ...
- Html中CSS之去除li前面的小黑点,和ul、LI部分属性方法
对于很多人用div来做网站时,总会用到,但在显示效果时前面总是会有一个小黑点,这个令很多人头痛,但又找不到要源,其它我们可以用以下方法来清除.1.在CSS中写入代码.找到相关性的CSS,在..li和. ...
- [转载]Ocelot简易教程(三)之主要特性及路由详解
上篇<Ocelot简易教程(二)之快速开始2>教大家如何快速跑起来一个ocelot实例项目,也只是简单的对Ocelot进行了配置,这篇文章会给大家详细的介绍一下Ocelot的配置信息.希望 ...