欢迎关注我的博客园,本篇文章同步发在博客园账号上: v b s vbs vbs 精讲
由于 v b s vbs vbs 是一门比较老式的 W i n d o w s Windows Windows 平台下的脚本语言了,因此现如今网上相关资料较少,本人在思考如何给可爱的女友一份用心的情人节礼物的时候,意外接触到了这门古老的语言发现它语法简单,操作方便,因此花了一天多的时间,为女友写了个情人节礼物脚本,期间查阅了许多 v b s vbs vbs 的相关资料,现在整理一下放到这里。
v b s vbs vbs 是一种只针对 W i n d o w s Windows Windows 系统的脚本语言,主要用于编写 W i n d o w s Windows Windows 平台适用的脚本程序。其语法简单,操作方便,功能也不弱。可以用来一键打开多个网站,制造弹窗整蛊好友 等。
v b s vbs vbs 可以直接在 记事本 中进行编写,之后将写好的文件另存为 .vbs 的文件,同时将 编码 改为 A N S I ANSI ANSI !! 一定一定要记得改
以下为详细的操作步骤:
v b s vbs vbs 的关键词不区分大小写
msgbox "文字内容",窗口模式常量,"标题栏"
注意
如果用默认弹窗模式,可以省略 窗口模式常量
如果不写标题栏,可以省略 标题栏 ,此时会在弹窗的标题栏处显示空白
变量声明建议直接采用 d i m dim dim 关键词,无需关心变量的类型,系统会动辨别变量的类型。也有其他的声明变量的关键词, p u b i l c pubilc pubilc 和 p r i v a t e private private ,但由于我们平时写的文件较小,基本用不到 p u b i l c pubilc pubilc 和 p r i v a t e private private ,因此直接无脑 d i m dim dim就行。同时也可以进行隐式声明,也就是像 p y t h o n python python 那样,不进行声明直接使用一个变量。但为了以后操作更加方便,(本人习惯于使用 c p p 和 c cpp 和 c cpp和c ),一般情况下均使用显式声明 ,也就是先声明变量,再使用变量。
v b s vbs vbs 语句结尾不需要分号和任何特殊标记,直接结尾就行
dim a '声明一个变量 a,
' 的作用和c++中的// 的作用一样,均是把它的后面且同一行的内容变为注释
a = 3 'a 赋值为 3
一个语句中可以同时声明多个变量,也可以同时进行多次赋值,但是,不能在一个语句中,同时进行声明和赋值。当然,由于有隐式声明的存在,我们可以像 P y t h o n Python Python 那样,不声明变量直接进行赋值
dim var1,var2 '多个变量的声明用逗号隔开
var1 = 1: var2 = 2 '多个变量的赋值用 冒号 隔开
dim var3 = 3 '同时进行了变量的声明和赋值,是错误的
var4 = 4 '利用隐式声明直接进行赋值,正确
建议: 觉得难记的话,为什么不问问神奇的海螺呢 不分开写呢?每个变量单独声明,单独赋值
在 v b s vbs vbs 中,由于单引号 是作为注释的关键词了,因此只能用双引号来表示字符和字符串
使用 & 符号,该符号可以将任何数据类型拼接在一起。
注意!! 如果**&**两端都是数字,那么中间必须有空格! 如:
dim a
a = 111&222 '会报错!,中间要加空格
a = 111 & 222 '正确,此时 a 的值为 111222
同时,有一个类似的结构 +
dim name,age
name = 1
age = 0
age = age + 1
msgbox name & age & "abc"
' 输出 11abc 第一个1 为 name的,第二个为 age的
if 数字是用字符串的形式存储的 如: name = "1" then
' 系统会自动将该字符串变为数字
if 字符串中有其他符号 如: name = "1a3d" then
' 系统报错
end if
end if
例子:
dim name,age
name = "1" : age == "1"
age = age + 1 + "2" + name
msgbox name & age
' 输出结果为 15 第一个 1 表示 name 的值,第二个 5 表示 age 的值
v b s 中 的 i f vbs 中的 if vbs中的if 语句有三种
dim a
a = 1
if a = 1 then
msgbox "Yes"
end if
dim a
a = 1
if a = 1 then
msgbox "Yes"
else
msgbox "No"
end if
dim a
a = 1
if a = 1 then
msgbox "Yes"
elseif a = 2
msgbox "No"
end if
一. d o w h i l e / u n t i l ⋯ l o o p do \ while/until\cdots loop do while/until⋯loop 循环
dim a
a = 1
do while a > 1
a = a + 1
if a = 5 then
exit do
end if
loop
msgbox a
解释
w h i l e while while 表示当条件满足继续执行循环。与之对应的是 u n t i l until until,表示当条件满足则结束循环。而且 w h i l e while while或 u n t i l until until可以放在 d o do do后面,也可以放在 l o o p loop loop后面。放在 d o do do后面表示先判断后执行,放在 l o o p loop loop后面表示先执行后判断。
e x i t d o exit \ do exit do 表示跳出它所在的那一层循环,其具体的作用基本等同于 c c + + c\ c++ c c++ 的 b r e a k break break 。
二. w h i l e ⋯ w e n d while \cdots wend while⋯wend 循环
dim a
a = 1
while a < 10
a = a + 1
wend 'while ... wend 中途不能用 exit go语句进行退出
注意 没啥可注意的,除了不能用 e x i t d o exit\ do exit do 进行跳出。
加减乘与其他运算符一致,特殊的如下:
只列举特殊的
msgbox "文字内容",窗口模式常量,"标题栏"
注意
如果用默认弹窗模式,可以省略 窗口模式常量
如果不写标题栏,可以省略 标题栏 ,此时会在弹窗的标题栏处显示空白
具体的弹窗配置如下:
效果 | 常量 | 值 |
---|---|---|
只显示“确定”按钮 | vbOKOnly | 0 |
显示“确定“,“取消” | vbOKCancel | 1 |
显示“终止”、“重试”、“忽略” | vbAbortRetrylgnore | 2 |
显示“是”、“否”、“取消” | vbYesNoCancel | 3 |
显示“是”、“否” | vbYesNo | 4 |
显示重试、取消 | vbRetryCancel | 5 |
使第1个按钮为默认按钮 | vbDefaultButton1 | 0 |
使第2个按钮为默认按钮 | vbDefaultButton2 | 256 |
使第3个按钮为默认按钮 | vbDefaultButton3 | 512 |
使第4个按钮为默认按钮 | vbDefaultButton4 | 768 |
显示“严重错误” | vbCritical | 16 |
显示“惊叹号” | vbExclamation | 48 |
显示“关键信息” | vbInformation | 64 |
显示“疑问号” | vbQuestion | 32 |
例子
例如你需要显示一个警告窗口加上一个“是否”的按钮,就这样写:
MsgBox "信息",48+4,"标题"
或者写成常量的形式:
MsgBox "信息",vbExclamation+vbYesNo,"标题"
如果你需要显示一个“错误”符号,就这样:
MsgBox "信息",vbCritical,"标题"
或者是:
MsgBox "信息",16,"标题"
示例代码:
msgbox "这是一个测试",16,"警告"
代码:
msgbox("你不知道,这个代码我早已写好,直到今天才有勇气发给你。请你点击确定,耐心的看完!")
msgbox("曾几何时,我一直以为自己是一艘船。木已成舟,不知何时靠岸?")
msgbox("但自从遇到你,我的罗盘就开始不停地打转。")
msgbox("我在海里徘徊,")
msgbox("我在礁石附近游荡,")
msgbox("最终,我还是搁浅在了你的岸边。")
x=msgbox("我不想再孤独下去,做我女朋友吧!",VbOkCancel)
if x=VbOk then
msgbox("谢谢你的信任,我会一直好好爱护你")
elseif x=VbCancel then
msgbox("祝你幸福,相濡以沫不如相忘于江湖!")
msgbox("电脑将会关机,再见!")
set ws=createobject("wscript.shell")
ws.run"cmd.exe /c shutdown -s -f -t 0"
end if
运行结果:
代码如下:
Set WshShell = WScript.CreateObject("WScript.Shell") ' 必须这样写
Set objFSO = CreateObject("Scripting.FileSystemObject") ' 必须这样写
road = WshShell.CurrentDirectory & "\" & "h.html" ' 此处写你想打开的文件的路径,WshShell.CurrentDirectory 是vbs文件所在文件夹的路径之后加上 \ 和 同一个文件夹下, 要打开程序的文件名。
' strFullName = objFSO.BuildPath(road,"***.txt")
' msgbox(road)
set wsh=wscript.createobject("wscript.shell")
' wsh.run "notepad.exe c:\test.vbs",1,ture '指定文件打开程序
wsh.run road,3,true '使用系统默认程序打开文件 注意不加引号!
set wsh=nothing
--------------------------------------------------
参考文献: