vbs语法
声明变量并赋值
dim 声明变量
dim name
name = "tom"
定义常量
const PI=3.1415926
注释
rem
rem "这是vbs的注释"
‘
'这也是注释信息
常用内置函数
inputbox
显示对话框,用户可在其中输入文本,并/或点击按钮,然后返回结果。
dim msg
rem inputbox函数 第一个参数是 提示信息,第二个参数是 标题, 第三个参数输入框的默认值
rem msg 是你输入的值
msg = inputbox("输入信息","这是标题","这是默认值")
int
将输入值转化成整数值
dim a,b,result
a = inputbox("输入a的值") '输入1'
b = inputbox("输入b的值") '输入2'
result = ( a + b ) * 2 '结果为24,输入的值会当做字符串'
result = a * 2 + b * 2 '结果为6'
result = ( int(a) + int(b) ) '结果为6'
cdbl
把字符转换为数字,但又不取整
dim a,b,result
a = cdbl ( inputbox( "a是:","输入半径" ) ) '输入1.2'
b = cdbl ( Inputbox( "b是:","输入半径" ) ) '输入1.3'
result = ( a + b ) * 2 '结果为5'
msgbox(result)
cstr
将数字转成字符串
如果拼接字符串和数字可以用 & 符号
dim a , str
a = 1
a = cstr(a)
str = "abc" & 11
WScript.sleep
进程休眠函数
WScript.sleep 1000 '让当前进程休眠1000ms 同java中 Thread.sleep(1000)'
运算相关
mod 取余
dim a
a=16 mod 5 '1
^ 乘幂
dim result
result = 2 ^ 3 '8
if语句
if
dim a,b
a=12
b=13
if a<b then
msgbox ("A小于B")
msgbox ("B大于A")
end if
if - else
dim a
a=inputbox("请输入一个大于100的数")
a=int(a) 'inputbox返回的是字符串, 我们把他变成整数
if a>100 then
msgbox ("正确")
else
msgbox ("错误")
end if
if - else if - else
dim a
a=inputbox("请输入一个大于100的数")
a=int(a) 'inputbox返回的是字符串, 我们把他变成整数
if a>100 then
msgbox ("大于100")
else if a=100 then
msgbox ("等于100")
else if a > 50 then
msgbox("大于50")
else
msgbox ("错误")
end if
end if
end if
and or 逻辑运算符
dim a,b
a=inputbox("输入一个数 >10")
b=inputbox("输入另一个数 >10")
a=int(a)
b=int(b)
if a>10 and b>10 then
msgbox ("正确")
else
msgbox ("错误")
end if
dim a,b
a=inputbox("输入一个数 >10")
b=inputbox("输入另一个数 >10")
a=int(a)
b=int(b)
if a>10 or b>10 then
msgbox ("正确")
else
msgbox ("错误")
end if
select case
dim a
a = 1
select case a
case 0
msgbox("a的值为:" + cstr(a))
case 1
msgbox("a的值为:" + cstr(a))
case else
msgbox("a的值为其他")
end select
循环
do - loop 无线循环
do
msgbox("111")
WScript.sleep 5000
loop
跳出do loop循环
dim a
a = 0
do
msgbox(a)
WScript.sleep 1000
if a = 5 then
exit do '退出当前循环'
end if
a = a + 1
loop
do - while - loop
dim a,ctr
ctr=0
const pass="pas123_"
do while ctr<3 '先判断while 条件 满足才执行'
a=inputbox("请输入密码")
if a=pass then
msgbox ("认证成功")
msgbox ("(你可以在这里加一段成功后得到的信息)")
exit do
else
ctr=ctr+1 '如果密码出错就增加一次错误认证计数
msgbox ("认证出错, 请检查密码")
end if
loop
dim a,ctr
ctr=0
const pass="pas123_"
do
a=inputbox("请输入密码")
if a=pass then
msgbox ("认证成功")
msgbox ("(你可以在这里加一段成功后得到的信息)")
exit do
else
ctr=ctr+1 '如果密码出错就增加一次错误认证计数
msgbox ("认证出错, 请检查密码")
end if
loop while ctr<3 '先执行do中的代码 在判断 while 条件'
for - next
exit for 退出for循环
dim i
for i=0 to 5
msgbox (i)
next
嵌套循环
dim i,j,str
for i=1 to 9
for j=1 to 9
str=str & i * j & " " '&是和并字符串的符号
next '每个next对应一个for
next
msgbox str
for each - next
dim arrs
arrs = array("abc","abd","acd")
for each arr in arrs
msgbox(arr)
next
数组
定义一维数组
dim 数组名(长度) (定义的数组元素的个数为 长度 + 1)
dim name(9) '定义了10个元素的数组,下标从 0 开始'
定义二维数组
dim name(9,2)
函数
定义函数
function 函数名(参数1, 参数2...参数n)
...
exit function '结束函数, 不是必需的
...
end function
注意事项
有返回值的才是函数,没有返回值的是子程序(过程)
函数的参数列表可以是空的, 但括号不能省略, 参数之间用”,”分割,
如果函数有返回值则使用 函数名 = 要返回的结果(返回后后面的语句不在执行)
示例
dim a,b
a = 1
b = 2
msgbox(add(a,b))
function add(a,b)
add = a + b
end function
过程
没有返回值的函数是子程序(过程)
定义过程
sub 子程序名(参数1, 参数2...参数n)
...
exit sub '结束子程序, 不是必需的
...
end sub
注意事项
调用子程序(过程)时,需要用关键字 call
示例
dim a,b
a = 1
b = 2
call add(a,b)
'msgbox(add(a,b))
sub add(a,b)
msgbox (a + b)
end sub
内置函数
Date/Time 函数
函数 | 描述 |
---|---|
CDate | 把有效的日期和时间表达式转换为日期(Date)类型。 |
Date | 返回当前的系统日期。 |
DateAdd | 返回已添加指定时间间隔的日期。 |
DateDiff | 返回两个日期之间的时间间隔数。 |
DatePart | 返回给定日期的指定部分。 |
DateSerial | 返回指定年、月、日的日期。 |
DateValue | 返回日期。 |
Day | 返回代表一月中的一天的数字(介于并包括 1 到 31 之间)。 |
FormatDateTime | 返回格式化为日期或时间的表达式。 |
Hour | 返回代表一天中的小时的数字(介于并包括 0 到 23 之间)。 |
IsDate | 返回指示计算表达式能否转换为日期的布尔值。 |
Minute | 返回一个数字,代表小时的分钟(介于并包括 0 到 59 之间)。 |
Month | 返回一个数字,代表年的月份(介于并包括 1 到 12 之间)。 |
MonthName | 返回指定月份的名称。 |
Now | 返回当前的系统日期和时间。 |
Second | 返回一个数字,代表分钟的秒(介于并包括 0 到 59 之间)。 |
Time | 返回当前的系统时间。 |
Timer | 返回自 12:00 AM 以来的秒数。 |
TimeSerial | 返回特定小时、分钟和秒的时间。 |
TimeValue | 返回时间。 |
Weekday | 返回一个数字,代表一周的天数(介于并包括 1 到 7 之间)。 |
WeekdayName | 返回一周中指定的一天的星期名。 |
Year | 返回一个数字,代表年份。 |
Conversion 函数
函数 | 描述 |
---|---|
Asc | 把字符串中的首字母转换为 ANSI 字符代码。 |
CBool | 把表达式转换为布尔(Boolean)类型。 |
CByte | 把表达式转换为字节(Byte)类型。 |
CCur | 把表达式转换为货币(Currency)类型。 |
CDate | 把有效的日期和时间表达式转换为日期(Date)类型。 |
CDbl | 把表达式转换为双精度(Double)类型。 |
Chr | 把指定的 ANSI 字符代码转换为字符。 |
CInt | 把表达式转换为整数(Integer)类型。 |
CLng | 把表达式转换为长整型(Long)类型。 |
CSng | 把表达式转换为单精度(Single)类型。 |
CStr | 把表达式转换为字符串(String)类型。 |
Hex | 返回指定数字的十六进制值。 |
Oct | 返回指定数字的八进制值。 |
Format 函数
函数 | 描述 |
---|---|
FormatCurrency | 返回作为货币值进行格式化的表达式。 |
FormatDateTime | 返回作为日期或时间进行格式化的表达式。 |
FormatNumber | 返回作为数字进行格式化的表达式。 |
FormatPercent | 返回作为百分数进行格式化的表达式。 |
Math 函数
函数 | 描述 |
---|---|
Abs | 返回指定数字的绝对值。 |
Atn | 返回指定数字的反正切。 |
Cos | 返回指定数字(角度)的余弦。 |
Exp | 返回 e(自然对数的底)的幂次方。 |
Hex | 返回指定数字的十六进制值。 |
Int | 返回指定数字的整数部分。 |
Fix | 返回指定数字的整数部分。 |
Log | 返回指定数字的自然对数。 |
Oct | 返回指定数字的八进制值。 |
Rnd | 返回小于1但大于或等于0的一个随机数。(与Randomize配合使用,每次生成的随机数不相同) |
Sgn | 返回可指示指定数字的符号的一个整数。 |
Sin | 返回指定数字(角度)的正弦。 |
Sqr | 返回指定数字的平方根。 |
Tan | 返回指定数字(角度)的正切。 |
Array 函数
函数 | 描述 |
---|---|
Array | 返回一个包含数组的变量。 |
Filter | 返回下标从零开始的数组,其中包含基于特定过滤条件的字符串数组的子集。 |
IsArray | 返回一个指示指定的变量是否为数组的布尔值。 |
Join | 返回一个由数组中若干子字符串组成的字符串。 |
LBound | 返回指示数组维数的最小下标。 |
Split | 返回下标从零开始的一维数组,包含指定数量的子字符串。 |
UBound | 返回指示数组维数的最大下标。 |
String 函数
函数 | 描述 |
---|---|
InStr | 返回字符串在另一字符串中首次出现的位置。搜索从字符串的第一个字符开始。 |
InStrRev | 返回字符串在另一字符串中首次出现的位置。搜索从字符串的最末字符开始。 |
LCase | 把指定字符串转换为小写。 |
Left | 从字符串的左侧返回指定数量的字符。 |
Len | 返回字符串中的字符数量。 |
LTrim | 删除字符串左侧的空格。 |
RTrim | 删除字符串右侧的空格。 |
Trim | 删除字符串左侧和右侧的空格。 |
Mid | 从字符串中返回指定数量的字符。 |
Replace | 使用另一个字符串替换字符串的指定部分指定的次数。 |
Right | 从字符串的右侧返回指定数量的字符。 |
Space | 返回由指定数量的空格组成的字符串。 |
StrComp | 比较两个字符串,返回代表比较结果的一个值。 |
String | 返回包含指定长度的重复字符的字符串。 |
StrReverse | 反转字符串。 |
UCase | 把指定的字符串转换为大写。 |
其他函数
函数 | 描述 |
---|---|
CreateObject | 创建指定类型的对象。 |
Eval | 计算表达式,并返回结果。 |
GetLocale | 返回当前的 locale ID。 |
GetObject | 返回对文件中 automation 对象的引用。 |
GetRef | 允许您把 VBScript 子程序连接到页面上的一个 DHTML 事件。 |
InputBox | 显示对话框,用户可在其中输入文本,并/或点击按钮,然后返回内容。 |
IsEmpty | 返回一个布尔值,指示指定的变量是否已被初始化。 |
IsNull | 返回一个布尔值,指示指定的表达式是否包含无效数据(Null)。 |
IsNumeric | 返回一个布尔值,指示指定的表达式是否可作为数字来计算。 |
IsObject | 返回一个布尔值,指示指定的表达式是否是一个 automation 对象。 |
LoadPicture | 返回一个图片对象。仅用于 32 位平台。 |
MsgBox | 显示消息框,等待用户点击按钮,并返回指示用户点击了哪个按钮的值。 |
RGB | 返回一个表示 RGB 颜色值的数字。 |
Round | 对数字进行四舍五入。 |
ScriptEngine | 返回使用中的脚本语言。 |
ScriptEngineBuildVersion | 返回使用中的脚本引擎的内部版本号。 |
ScriptEngineMajorVersion | 返回使用中的脚本引擎的主版本号。 |
ScriptEngineMinorVersion | 返回使用中的脚本引擎的次版本号。 |
SetLocale | 设置 locale ID,并返回之前的 locale ID。 |
TypeName | 返回指定变量的子类型。 |
VarType | 返回指示变量子类型的值。1 |
rem qq自动登录
dim ws
set ws=createobject("wscript.shell")
ws.run "qq"
do while ws.AppActivate("QQ")<>True
wscript.sleep 500
loop
ws.AppActivate "QQ"
WScript.Sleep 1000
ws.SendKeys "{TAB}"
WScript.Sleep 1000
ws.SendKeys "***********"
WScript.Sleep 1000
ws.SendKeys "{ENTER}"
rem qq轰炸
dim ws
set ws=createobject("wscript.shell")
do while ws.AppActivate("风在吹")<>True
wscript.sleep 500
loop
ws.AppActivate("风在吹")
for a = 1 to 1000
ws.sendkeys(a)
ws.sendkeys("{enter}")
wscript.sleep 10
next
wscript.quit