VBScript基础语法学习笔记

C#用来编写工控软件,而vbs用来为工控软件编写脚本。

1 VBS概述

1.1简介

VBS(Microsoft Visual Basic Script Edition,微软公司可视化BASIC脚本版)是基于Visual Basic的脚本语言。
脚本是普通的文本文件,属于批处理文件,它导演了一个序列事件的发生。

关于脚本周期
设定好脚本周期后,每当新的周期开始,脚本就会自动按顺序执行指令,如果脚本指令执行完毕而周期还未结束,脚本会等待直至周期结束,然后在新一轮周期开始时从头执行指令;如果周期已结束而脚本还未执行完毕全部指令,那么还未执行的指令被放弃,脚本从头执行指令,未执行的指令一直不会被执行。
因此必须计算好脚本周期,确保所有指令都能被执行的同时,避免周期过长降低效率。

1.2使用下来与其他语言语法最直观的区别

  1. 关键字首字母大写(编译器会自动将关键字首字母大写,日常输入时输入小写并不会影响语句执行)
  2. 语句结尾不需要分号(;)
  3. 没有花括号{}
  4. 不存在 相等==
  5. 注释:使用 ’
  6. 任何一种文本编辑器都可以用来开发VBS,包括记事本

2 VBS语法

2.1变量

创建变量的方法:

Dim X //创建单个变量
Dim X,Y //创建多个变量

变量赋值和C语言类似:

X=1

在VBS中似乎不能直接使用 Dim X=1 的形式,即在创建变量时直接赋值,我测试时不管是记事本还是编译器都会报错,需要改成

Dim X
X=1

2.2条件

只用到一个IF时,其语法为If…Then:

If i=1 Then y=1//只执行一条语句,可以把代码写为一行
/*****************/
IF i=1 Then
y=1
z=2
End If //执行多条语句,需要用关键词 "End If" 来结束这个语句

特别注意比较i是否等于1用的是等号(i=1),而不是一般语法用的==(i==1)
如果需要用到Else,其语法为If…Then…Else

If i=1 Then
y=1
Else 
z=2
End If

如果需要用到Elself,其语法为If…Then…ElseIf

If i=1 Then
y=1
ElseIf i=2 Then 
y=2
...
Else
y=3
End If

2.3循环

循环指定的次数
使用 For…Next 语句运行一段代码指定的次数,For 语句规定计数变量以及它的初始值和结束值;Next 语句会以 1 作为步进值来递增变量。

For i=0 To 5
x=x+1
Next

条件循环
Do…Loop 语句重复执行某段代码直到条件是 true 或条件变成 true。

Do While i>10
i=i-1
Loop

如果需要执行死循环,可改为:

Do While 1
...
Loop

2.4创建函数

函数体被封装在 Function 和 End Function 语句内,基本格式为:

Function 函数名(形参1,形参2)//如果没有参数,必须带有空的圆括号 ()
内容
End Function

调用格式为:

Call 函数名(实参1,实参2)

函数一般放在程序末尾:

主程序



函数1


函数2

其它

  1. 弹窗
msgbox "弹窗内容"
  1. 时间函数
    VBS函数—日期/时间
    在很多情况下都非常有用。

3 VBS基于对象

具体的说应该是COM对象。

之前给物联网网关编写脚本的时候我都快忘了vbs是基于对象(与“面向对象”含义不同,基于对象相当于不完全面向对象)的,因为脚本用到的语法结构很简单,并没有像C#那样涉及到显著的面向对象的特征,导致我一直以为它是面向过程的,直到后来给wincc编程时涉及到了WSHshell,现在就来做一个简要的补充。

概念

  1. Windows:脚本宿主。
  2. WshShell 对象:提供对本地Windows 外壳程序的访问。在程序中通常只是给一个变量取名WshShell以方便理解,因此也可以更换成其它单词。
  3. set:给对象变量赋值,与dim的区别在于后者用于定义变量。
  4. WScript 对象:提供对 Windows 脚本宿主对象模型根对象的访问。
  5. CreateObject函数:用于创建对象
    VBS中CreateObject和WScript.CreateObject的区别介绍
  6. WScript.Shell:WshShell对象的ProgID(COM技术相关)
    ProgID 概念
  7. run方法:object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]),详见:vbs的Run方法
'以上对象、函数和关键字常组成下面这行:
set WSHshell = wscript.createobject("wscript.shell") 
'这一行基本是固定的
'意思是创建一个脚本命令窗口,这句话之后就是进行命令的输入

其它功能

  1. 延时
WScript.Sleep 10000 '数字为毫秒数
  1. 自动按键
CreateObject("wscript.shell").sendkeys "{F5}"
'这里对语句进行了简化,删去了定义对象变量和给对象变量赋值

详见:Sendkeys模拟键盘操作

附录:脚本的关闭

使用记事本作脚本运行时,如果脚本内写入了死循环,那么脚本会保持运行直到进程被杀死;并且由于脚本在运行时不会有任何窗口出现,所以有时候很难察觉脚本仍在运行。
最简便关闭脚本的方法是直接打开任务管理器,找到wscript.exe然后结束它。
当然也可以尝试使用脚本来关闭脚本,其代码为:

dim WSHshell
set WSHshell = wscript.createobject("wscript.shell") 
WSHshell.run "taskkill /im wscript.exe /f ",0 ,true 
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值