vbs 语法精讲

欢迎关注我的博客园,本篇文章同步发在博客园账号上: v b s vbs vbs 精讲

由于 v b s vbs vbs 是一门比较老式的 W i n d o w s Windows Windows 平台下的脚本语言了,因此现如今网上相关资料较少,本人在思考如何给可爱的女友一份用心的情人节礼物的时候,意外接触到了这门古老的语言发现它语法简单,操作方便,因此花了一天多的时间,为女友写了个情人节礼物脚本,期间查阅了许多 v b s vbs vbs 的相关资料,现在整理一下放到这里。

1. 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 !! 一定一定要记得改
以下为详细的操作步骤:

  1. 记事本中编写程序
    在这里插入图片描述

  2. 将文件另存为 .vbs 的文件,同时将 编码 改为 A N S I ANSI ANSI !! 一定一定要记得改

在这里插入图片描述
3. 之后,只要双击该文件,就可以运行啦!
在这里插入图片描述
运行结果:
在这里插入图片描述

2. vbs 常用基础语法

关键词

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 cppc ),一般情况下均使用显式声明 ,也就是先声明变量,再使用变量。

语句结尾

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

同时,有一个类似的结构 +

  1. 数字 + 数字:表示运算
  2. 数字 & 数字:表示拼接,且数字和&之间必须有空格
  3. 数字 + 字符串数字 :表示运算
  4. 数字 & 字符串数字:表示拼接,且数字和&之间必须有空格
  5. 数字和非纯数字字符串拼接时,只能使用 &
  6. 非纯数字字符串+非纯数字字符串:表示拼接
    如:
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 的值

if 语句

v b s 中 的 i f vbs 中的 if vbsif 语句有三种

  1. i f ⋯ t h e n ⋯ e n d   i f if \cdots then \cdots end \ if ifthenend if
dim a
a = 1
if a = 1 then 
	msgbox "Yes"
end if
  1. i f ⋯ t h e n ⋯ e l s e ⋯ e n d   i f if \cdots then \cdots else \cdots end \ if ifthenelseend if
dim a
a = 1
if a = 1 then 
	msgbox "Yes"
else 
	msgbox "No"
end if
  1. i f ⋯ t h e n ⋯ e l s e i f ⋯ e n d   i f if \cdots then \cdots elseif \cdots end \ if ifthenelseifend 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/untilloop 循环

dim a
a = 1
do while a > 1
	a = a + 1
	if a = 5 then 
		exit do
	end if
loop
msgbox a

解释

  1. 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后面表示先执行后判断

  2. 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 whilewend 循环

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 进行跳出。

算术运算符

加减乘与其他运算符一致,特殊的如下:

  1. m o d mod mod :表示取余,如 10   m o d   5 10 \ mod \ 5 10 mod 5 表示取 10/5 的余数
  2. 除法:/ 浮点数除法;\ 取整除法
  3. 指数: 2 ^ 3 表示 2 的三次方

逻辑运算符

只列举特殊的

  1. 相等 = 注意! 其他语言大多都是 == 表示相等,= 表示赋值
  2. 赋值 =
  3. 不相等 <>
  4. n o t not not
  5. a n d and and
  6. o r or or
  7. 异或 x o r xor xor

3. 弹窗相关语法

msgbox "文字内容",窗口模式常量,"标题栏"

注意
如果用默认弹窗模式,可以省略 窗口模式常量
如果不写标题栏,可以省略 标题栏 ,此时会在弹窗的标题栏处显示空白

具体的弹窗配置如下:

效果常量
只显示“确定”按钮vbOKOnly0
显示“确定“,“取消”vbOKCancel1
显示“终止”、“重试”、“忽略”vbAbortRetrylgnore2
显示“是”、“否”、“取消”vbYesNoCancel3
显示“是”、“否”vbYesNo4
显示重试、取消vbRetryCancel5
使第1个按钮为默认按钮vbDefaultButton10
使第2个按钮为默认按钮vbDefaultButton2256
使第3个按钮为默认按钮vbDefaultButton3512
使第4个按钮为默认按钮vbDefaultButton4768
显示“严重错误”vbCritical16
显示“惊叹号”vbExclamation48
显示“关键信息”vbInformation64
显示“疑问号”vbQuestion32

例子
例如你需要显示一个警告窗口加上一个“是否”的按钮,就这样写:

MsgBox "信息",48+4,"标题"

或者写成常量的形式:

MsgBox "信息",vbExclamation+vbYesNo,"标题"

如果你需要显示一个“错误”符号,就这样:

MsgBox "信息",vbCritical,"标题"

或者是:

MsgBox "信息",16,"标题"

示例代码:

msgbox "这是一个测试",16,"警告"

运行结果:
警告 的 弹窗运行结果

4.相关小案例

代码:

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

运行结果:

在这里插入图片描述

5 如何打开其他文件呢

代码如下:

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

--------------------------------------------------
参考文献:

  1. 弹窗文献:
    https://zhidao.baidu.com/question/415782886.html
  2. 语法文献:
    https://zhuanlan.zhihu.com/p/367897802
  3. 相关案例:
    https://blog.csdn.net/weixin_50915462/article/details/113805008
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐