VBScript 教程
VBScript 教程
VB 不区分大小写
变量
普通变量
- 关键词声明
Dim、Public、Private - 赋值动态创建
name = "hello" - Option Explicit 语句
必须用关键词声明
- 关键词声明
数组变量
- 显示声明
- 一维数组 声明
Dim names(3) ' 声明为4个元素的数组 - 二维数组甚至多维数组 声明
Dim table(参数表) - 数组访问
names(Index '索引值)
- 一维数组 声明
- 显示声明
字典数组
- 创建字典数组 对象
Set dictionary = CreateObject("Scripting.Dictionary") - 属性:
CompareMode
设定或返回键的字符串比较模式
Count
只读。返回 Dictionary 里的键/条目对的数量
Item(key)
设定或返回指定的键的条目值
用法:
Item(ItemValue)
Key(key)
设定键值
用法:
Key(KeyValue) - 方法
Add(key,item)
增加键/条目对到 Dictionary
Exists(key)
如果指定的键存在,返回 True,否则返回 False
Items()
返回一个包含 Dictionary 对象中所有条目的数组
用法:
dictionary.Items
Keys()
返回一个包含 Dictionary 对象中所有键的数组
用法:
dictionary.Keys
Remove(key)
删除一个指定的键/条目对
RemoveAll()
删除全部键/条目对
- 创建字典数组 对象
操作符
1)比较操作符
1. 等于、小于、大于、小于等于、大于等于都与我们常用的符号是一致的
2. 不等于: <>
2)逻辑操作符
1. 和操作 AND
2. 非操作 NOT
3. 或操作 OR
3)连接操作符
1. +
2. &
可使用+ 和 & 操作符 连接字符串 ,一般使用&操作符
4)运算符
1. 乘方 ^
2. 取模 Mod5)特殊操作符
Is 用来比较对象条件语句
1) If (判断表达式) Then
执行语句
EndIf
2) Select Case 表达式
case 条件值
执行语句
……
End Select循环
循环控制语句有for……next循环、for……each循环、do……while循环、do……until循环、while循环五种形式。For ... Next
For 计数器变量=开始计数值 to 最后计数值
执行循环体
Nextfor ... each
For each 循环计数变量 in 要查看的对象或数组
执行处理语句
Next以上2个for循环,for...next、for...each 退出循环:
exit for 语句do ... while
Do while 条件
执行循环体
Loopdo ... until
Do until 条件
执行循环体
Loop以上2个Do循环,Do... while, Do ... Until 循环 退出:
exit Dowhile
While 条件
执行循环体
Wend
程序(函数)
1)子程序
1. 无返回值
2. 结构
Sub 子程序名(参数表)
执行语句
End Sub2)函数程序
1. 有返回值
2. 结构
Function 函数程序名(参数表)
执行语句函数程序名 = 返回值 '返回返回值
End Function
注意:尽管在定义子程序的时候,参数列表要加括号,但在调用子程序的时候,参数列表不加括号,括号只在函数中使用。另外,子程序不能在表达式中使用。
而函数只能出现在赋值语句的右边,或者表达式中,函数不能直接使用,如果必须直接使用函数,则必须使用call语句调用,并取消返回值。
注释
用一个不成对的单引号 'Vbs运行外部程序
=利用 CreateObject 命令 调用外部命令=
1)WSH也就是用来解析Vbs的宿主,本身包含了几个个常用对象:
1、Scripting.FileSystemObject
—> 提供一整套文件系统操作函数
2、Scripting.Dictionary
—> 用来返回存放键值对的字典对象
3、Wscript.Shell
—> 提供一套读取系统信息的函数,如读写注册表、查找指定文件的路径、读取DOS环境变量,读取链接中的设置
4、Wscript.NetWork
—> 提供网络连接和远程打印机管理的函数。(其中,所有Scripting对象都存放在SCRRUN.DLL文件中,所有的Wscript对象都存放在WSHOM.ocx文件中。)2) 例子:
Option Explicit
Dim objShell
Set objShell = CreateObject(“Wscript.Shell”)
objShell.Run “notepad”
说明:
1. Set
是Vbs 伪指令, 是对象引用赋值给变量 , 除str,bool, number 类的数据外的变量 皆为引用(即 处处皆对象)
2. 引用方法.
用. 调用对象中的方法
3. Run 函数
- 有三个参数
1)第一个:程序执行的路径
2)第二个:窗口形式
0 是在后台运行;
1 表示正常运行;
2 表示激活程序并且显示为最小化;
3 表示激活程序并且显示为最大化;
一共有10个这样的参数我只列出了4个最常用的
3)第三个:程序执行阻塞
true 脚本就会等待调用的程序退出后再向后执行。
- 返回值
0 执行成功
非0 执行失败,为错误码
错误处理
On Error Resume Next
防止vbs脚本在发生错误时停止运行,但是它并不能真正的处理错误,需添加错误处理
例:
on error resume nexta=11
b=0
c=a/b
if err.number<>0 then
wscript.echo err.number & err.description & err.source
end if
Wscript.Shell 方法
1)命令行
run()
2)注册表
1. 读
regread(path)
2. 写
regwrite(path,key)
3. 删
regdel(path)
注意,如果要删除关键词的值的话 一定要在路径最后加上“\”,如果不加斜线,就会删除整个关键词。
11.FileSystemObject(FSO 文件系统对象)----- 很重要
说明:
参数中有Path的 指 必须含有路径 + File/Floder/Drive 等- 创建FSO 文件系统对象:
Set fs = wscript.CreateObject("scripting.filesystemobject") - 释放
Set fs = nothing
1)包含对象
1. Drive对象:
包含储存设备的信息,包括硬盘、光驱、ram盘、网络驱动器
2. Drives集合:
提供一个物理和逻辑驱动器的列表
3. File 对象:
检查和处理文件
4. Files 集合:
提供一个文件夹中的文件列表
5. Folder对象:
检查和处理文件夹
6. Folders集合:
提供文件夹中子文件夹的列表
7. Textstream对象:
读写文本文件2)方法
BulidPath:把文件路径信息添加到现有的文件路径上Folders:
1. CopyFolder:
作用:
复制文件夹
用法:
CopyFolder(srcPath,desPath,IsforceCover)
IsforceCover 参数选项 :
true) 强制覆盖
false) (不覆盖)默认值
2. GetFolder:
作用:
返回一个文件夹对象
用法:
GetFolder(folderPath)
3. CreateFolder:
作用:
创建文件夹
用法:(不存在要创建文件夹时,创建文件夹)
CreateFolder(folderPath)4. MoveFolder:
作用:
移动文件夹
用法:
MoveFolder(srcPathDir,desPathDir)
5. DeleteFolder:
作用:
删除文件夹及其中所有内容
用法:
DeleteFolder(folderPath)
6. FolderExists:
作用:
确定某文件夹是否存在
用法:
FolderExists(FloderPath)
7. GetSpecialFolder:
作用:
返回指向一个特殊文件夹的对象指针
用法:
GetSpecialFolder(SpecialFolderValue)
SpecialFolderValue 取值:
0 表示windows文件夹,相关常量是windowsfolder
1 系统文件夹,相关常量是systemfolder
2 临时目录,相关常量temporaryfolder
TextStream:
1. CreateTextFile:
作用:
创建文本并返回一个TextStream对象
用法:
CreateTextFile(filePath)
Example:
CreateTextFile "d:\index.txt"
2. OpenTextFile:
作用:
打开一个存在的文件并返回一个TextStream对象
用法:
OpenTextFile(srcFilePath,fileModelNum,isCreate)
参数说明:
fileModelNum:
描述:
文件的访问模式
值:
1 只读
2 写入
8 文件后追加
isCreate:
描述:
文件不存在时,是否要创建当前文件
值:
true 创建
false 不创建
3. GetTempName:返回一个可以被createtextfile使用的随机产生的文件或文件夹的名称
4. 文件读取:
1)read(readCharNums) 读取指定 readCharNums 个字符
2)readline 读取一行
3)readAll 读取所有
5. 文件指针的属性
AtEndOfStream :
作用:
判断文件指针是否到文件尾
返回:
false 未到文件尾
true 已在文件尾AtEndOfLine:
作用:
判断文件指针是否到文件行末尾
返回:
false 未到文件行尾
true 已在文件行尾
Column & Line:
作用:
定位文件指针所在的行和列
注意:
文件打开后, 行和列的指针都将被设置为1
6. 文件跳行:
skip(charNum) 跳过charNum个字符
Skipline 跳过一行
7. 文件写入:
write(String) 写入 String 字符串
writeline(str) 写入 str 代表一行
writeBlankLines(BlankLinesNums) 写入 BlankLinesNums 个空行
8. 文件关闭:
close
File:
文件属性:
在windows中,文件的属性一般用数字来表示:
0 代表normal,即普通文件未设置任何属性。
1 代表只读文件。
2 代表隐藏文件
4 代表系统文件
16 代表文件夹或目录
32 代表存档文件
1024 代表链接或快捷方式
CopyFile:
作用:
复制文件
用法:
CopyFile(srcFilePath,desFilePath,isCoverFile = false)
DeleteFile:
作用:
删除文件
用法:
DeleteFile(srcFilePath)
FileExits:
作用:
确定一个文件是否存在
用法:
FileExits(srcFilePath)
MoveFile:
作用:
移动文件
用法:
MoveFile(srcFilePath, desDirectoryPath)
GetFile:
作用:
返回一个file对象
用法:
GetFile(srcFilePath)GetExtensionName:
作用:
返回扩展名
用法:
GetExtensionName(srcFilePath)
GetFileName:
作用:
返回文件夹中文件名称
用法:
GetFileName(srcFilePath)
GetParentFolderName:
作用:
返回一个文件夹的父文件夹
用法:
GetParentFolderName(srcFloderPath)
Drive:
DriveExits:确定驱动器是否存在
GetDrive:返回一个drive对象
GetDriveName:返回一个驱动器的名字Files:
GetAbsolutePathName:返回一个文件夹或文件的绝对路径
GetBaseName:返回一个文件或文件夹的基本路径- 创建FSO 文件系统对象:
SendKeys --- 模拟 按键
Set WshShell=WScript.CreateObject("WScript.Shell")
用法:
WshShell.SendKeys(SendKeyStrings)SendKeyStrings 根据不同键位,有不同的写法
1)基本键:
寓意:
指的是数字键、字母键等位置的键
用法:
例如 ‘X’ 键,
SendKeyStrings = “x”
2)特殊键:
寓意:
除了基本键的所有键。
用法:
1. Shift:
用 ' + ' 代之
2. Ctrl:
用 ' ^ ' 代之
3. Alt:
用 ' % ' 代之
4. 其余键:
用 ' { 键名 } ' 代之
5. 发多个重复键:
{键名 倍数 } ----> 发 '倍数' 个键名
例子:
Ctrl + E + C:
WshShell.SendKeys("^(ec)")
+:
WshShell.SendKeys "{+}"
Enter:
WshShell.SendKeys "{Enter}"
VBScript 关键字
Empty 用于指示一个未初始化的【变量值】,即为空
IsEmpty 用于测试一个变量是否未初始化
Nothing 用于指示一个未初始化的【对象值】,或者把对象变量从对象分离用于释放系统资源。
IsNothing 用于测试一个值是否是初始化的对象。
Null 用于指示一个变量为无效数据。
IsNull 用于测试一个变量为无效数据。True 布尔条件判断为真
False 布尔条件判断为假比较:
Empty 是【变量】未初始化
Nothing 是【对象】未初始化
Null 是【变量】无效数据
VBScript 教程的更多相关文章
- VBScript
VBScript then PrintWMIErrorthenExit Err.Description, Err.Number else ifnot boolCathiMode then wscrip ...
- TECH books
文章目录 TECH books linux vxworks bat c gdb c++ vbscript make java bash perl web uml software-misc cpu e ...
- Excel自定义函数开发手记
目录 本文使用的版本:Excel 2013 1.打开脚本编辑框 2.插入模块,编写代码 3.测试所写代码是否正确 4.给Excel单元插入自定义函数 5.给函数增加自定义说明 6.设置该自定义函数在E ...
- 迷你MVVM框架 avalonjs 入门教程
新官网 请不要无视这里,这里都是链接,可以点的 OniUI组件库 学习教程 视频教程: 地址1 地址2 关于AvalonJs 开始的例子 扫描 视图模型 数据模型 绑定 作用域绑定(ms-contro ...
- JavaScript强化教程——JavaScript 总结
本教程中我们向您讲授了如何向 html 页面添加 JavaScript,使得网站的动态性和交互性更强. 你已经学习了如何创建对事件的响应,验证表单,以及如何根据不同的情况运行不同的脚本. 你也学到了如 ...
- 正则表达式入门教程&&经典Javascript正则表达式(share)
前言 例子: ^.+@.+\\..+$ 这样的代码曾经多次把我自己给吓退过.可能很多人也是被这样的代码给吓跑的吧.继续阅读本文将让你也可以自由应用这样的代码. 正文 教程:正则表达式30分钟入门教程 ...
- w3school教程整理
原文链接:http://www.flygon.net/w3school 原文链接:https://github.com/wizardforcel/w3school w3school教程整理 离线版大部 ...
- avalonjs1.5 入门教程
迷你MVVM框架 avalonjs1.5 入门教程 avalon经过几年以后,已成为国内一个举足轻重的框架.它提供了多种不同的版本,满足不同人群的需要.比如avalon.js支持IE6等老旧浏览器,让 ...
- Javascript教程
Javascript教程 laiqun@msn.cn Contents 1. javascript嵌入方式 2. javascript语法 3. 数据类型 4. javascript变量 5. 字符串 ...
随机推荐
- JVM学习第三天(JVM的执行子系统)之类加载机制
好几天没有学习了,前几天因为导出的事情,一直在忙,今天继续学习, 其实今天我也遇到了一个问题,如果有会的兄弟可以评论留给我谢谢; 问题:fastJSON中JSONObject.parseObject做 ...
- 初探nmap
nmap 也就是Network Mapper用来扫描电脑开发的端口 主要功能: 探测主机在线情况 扫描主机开发端口和对应的大概服务命令: nmap 127.0.0.1 查看该主机开放的端口和端.端口类 ...
- centos7在线yum安装jumpsever2.2.2
#查看主机名 host=$(hostname) # 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文 localedef -c -f UTF-8 -i zh_C ...
- 关于h5游戏开发,你想了解的一切都在这儿!
2020年,受疫情影响,线下产业红利褪去,线上迎来的新一轮的高峰.众多商家纷纷抓住了转型时机,开启了流量争夺战.H5游戏定制无疑是今年引流的大热门.如何开发一款有趣.有爆点.用户爱买单的好游戏呢? ...
- sqlserver语句的执行顺序
执行顺序: 1.from 2.where 3.group by 4.having 5.根据select 关键之后的要显示的字段,进行结果集显示 6.order by 对最终结果集进行排序 7.top/ ...
- 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第一周 循环序列模型(Recurrent Neural Networks) -课程笔记
第一周 循环序列模型(Recurrent Neural Networks) 1.1 为什么选择序列模型?(Why Sequence Models?) 1.2 数学符号(Notation) 这个输入数据 ...
- [LeetCode]Sql系列4
##题目1 626. 换座位 小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id. 其中纵列的 id 是连续递增的 小美想改变相邻俩学生的座位. ...
- Linux实战(13):Centos8 同步时间
前言 以下操作是通过ntpdate命令实现同步 timedatectl set-timezone Asia/Shanghai # 设置时区 rpm -ivh http://mirrors.wlnmp. ...
- maven使用心得
1.一个项目下创建module,需要在project的pom下加入module,这个工程的pom <?xml version="1.0" encoding="UTF ...
- 分享一个php的防火墙,拦截SQL注入和xss
一个基于php的防火墙程序,拦截sql注入和xss攻击等 安装 composer require xielei/waf 使用说明 $waf = new \Xielei\Waf\Waf(); $waf- ...