VBScript基础
VBScript基础
一. 简介
- VBS是一种脚本语言
- VBS是微软的编程语言
Visual Basic
的轻量级版本 - 格式为file.vbs
- 弱类型
二. 变量和常量
- 定义:必须以字母开头,不能包含点号,不能超过255个字符
1.变量
变量的生存期:
- 变量的生存期:指的是它可以存在的时长
- 本地变量:在一个子程序中声明变量时,变量只能在此程序中访问。退出此程序时,变量也会失效。可以在不同的子程序中使用名称相同的本地变量,每个变量只能在声明它的程序中被识别。
- 如果在子程序以外声明了一个变量,在页面上的所有子程序都能访问到它。这类变量的生存期始于他们被声明,止于页面关闭。
1
2
3dim variable '定义变量
variable =inputbox("请输入")
msgbox variable rem 窗口输出variable赋值
1
dim num:num=0 '可用冒号:在声明后赋值
2. 常量
- 计算圆的面积
1 | dim s,r |
三. 数学运算
1. 运算符
四则运算:+ - * /
取余 mod
a = 9 mod 2 => a=1
次方 ^
a = 2 ^ 3 => a=8
字符串拼接 +
a="hello",b=" world",c=a+b => c="hello world"
拼接 &
dim i:i=1 msgbox "this is"&i
2. 类型转换
- 转int
a = int ( 5.5 ) => a=5
四. 数据类型
1. 布尔
1 | dim a,b |
五.语句
1. 条件 if
1 | dim a |
2. 选择 select … case
1 | dim a |
3.循环
do - loop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19'此处用两个if - else语句演示例子
num=0
dim password
const pass = "233"
do
password = inputbox("password:")
if password=pass then
msgbox "all right"
exit do
else
if num = 3 then
msgbox "GG"
exit do
else
num=num+1
msgbox "error,plz input again"
end if
end if
loopfor - next
1
2
3
4dim count
for count=0 to 10
msgbox count
nextdo - while
1
2
3
4
5count=0
do while count<11
msgbox count
count=count+1
loop跳出循环 exit for | exit do (do - loop)
1
2
3
4
5
6
7
8
9dim num:num=0
for i=0 to 9
num=num+1
if num=5 then
exit for
end if
next
msgbox num循环嵌套
1
2
3
4
5
6
7
8'9X9乘法表
dim i,j,k
for i=1 to 9
for j=1 to 9
k=i*j
msgbox k
next
next
六. 数组
1. 一维数组
- 定义
1 | dim name(2) |
- 字符串和数字的连接
1
2
3
4
5dim name(2)
for i=0 to 2
name(i)="this is "&i
msgbox name(i)
next
2. 二维数组
- 定义
1 | dim msg(1,1) |
- 使用例子
1 | dim msg(1,1) |
- 遇到问题:运行VB代码脚本的时候提示:Microsoft VBScript 编译器错误 错误 ‘800a0409’ 未结束的字符串常量
原因是:编码错误
解决方法:另存为编码是ANSI的文本,重新运行
七. 函数
1. 库函数
msgbox "hello"
inputbox(“input”)
获取系统日期
1
2
3
4
5
6'string date() & string time() = string now()
msgbox date()+time()
msgbox now()
'int month()
dim mon=month("2020-1-25")
msgbox mon字符串函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19dim a
a="HELLO WORLD"
'大写转小写 string lcase() ~~LessCase~~
a=lcase(a)
msgbox a
'小写转大写 string ucase()
a=("hello world")
a=ucase(a)
msgbox a
'取长度 int len()
a=len(a)
msgbox a
'替换 string replace()
a=replace("HELLO WORLD","WORLD","VBscript")
msgbox a数学函数
1
2
3
4
5
6'取绝对值
dim a
a=abs(-9)
msgbox a
'取整 int int(a)
'三角 sin() cos()数组函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15dim a(2)
a(0)="zero"
a(1)="one"
'判断是否是数组 boolean isarray()
b=isarray(a)
msgbox b
'最小下标 int lbound(a)
b=lbound(a)
msgbox b 'b=0
'最大下标 int ubound(a)
b=ubound(a)
msgbox b 'b=2格式转化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18'转换 conversion
'字符串转整数 cint() ~~change int~~
dim a
a=cint("890")
msgbox a
'进制转化 hex() oct()
'格式化 format
dim a
a= formatnumber(2000)
msgbox a
a=formatnumber(2000,1) '一位小数
msgbox a
a=formatpercent(2/5)
msgbox a
a=formatpercent(2/5,1) '一位小数
msgbox a
2.自定义函数
- 函数 function()
1 | '定义 |
- 子程序 sub()
1
2
3
4
5
6'定义
sub msg(name)
msgbox "hello"&name
end sub
'调用
call sub("world")
- call 可以省略
八. 文件执行
1. wscript类
1 | set ws=wscript.createobject("wscript.shell") |
路径带空格
1
2set ws=wscript.createobject("wscript.shell")
ws.run"""F:\SteamLibrary\steamapps\common"""run()的参数
- 路径
- 窗口:1-正常运行 2-激活程序最小化 3-激活程序最大化
- T\F: 是否等待