VBScript 用法

VBScript 用法详解

VBScript(Visual Basic Scripting Edition)是一种简单易学的脚本语言,主要用于:

  • Windows 系统自动化(通过 .vbs 文件或 Windows Script Host)
  • 旧版 ASP 网页服务器端脚本
  • 自动化测试工具(如 HP UFT/QTP)

下面从实际用法角度详细说明常见场景、语法规则和实用示例。

1. 运行方式

  • 独立脚本文件:用记事本编写,保存为 .vbs 后缀,双击运行或用 cscript/wscript 执行。
  • wscript:图形界面(MsgBox 等弹出窗口)
  • cscript:命令行模式(适合后台运行)
  • 嵌入 HTML(仅旧版 IE 支持):
  <script type="text/vbscript">
      MsgBox "Hello"
  </script>
  • ASP 页面(服务器端):
  <% Response.Write "Hello World" %>

2. 基本语法规则

  • 不区分大小写
  • 语句以换行分隔,或用 : 分隔多条语句在一行
  • 注释用 'Rem
  • 变量无需声明类型,直接赋值即可(默认 Variant 类型)
  • 推荐用 Option Explicit 强制声明变量,避免拼写错误
Option Explicit   ' 强制声明变量,好习惯!

Dim name
Dim age

name = "张三"
age = 30

MsgBox "姓名:" & name & vbCrLf & "年龄:" & age

3. 常用内置函数和对象

函数/对象用法示例说明
MsgBoxMsgBox “提示内容”, vbInformation, “标题”弹出消息框
InputBoxstr = InputBox(“请输入姓名:”)获取用户输入
Len(str)MsgBox Len(“abc”) ‘ 输出 3字符串长度
Left(str, n)Left(“abcde”, 3) ‘ “abc”左起取 n 个字符
Right(str, n)Right(“abcde”, 3) ‘ “cde”右起取 n 个字符
Mid(str, start, len)Mid(“abcde”, 2, 3) ‘ “bcd”从指定位置取子串
UCase / LCaseUCase(“abc”) ‘ “ABC”转大/小写
Date / Time / NowMsgBox Now当前日期时间
Year/Month/DayMsgBox Year(Now)取年/月/日

4. 流程控制

If…Then…Else

Dim score
score = InputBox("请输入成绩:")

If score >= 90 Then
    MsgBox "优秀"
ElseIf score >= 80 Then
    MsgBox "良好"
ElseIf score >= 60 Then
    MsgBox "及格"
Else
    MsgBox "不及格"
End If

Select Case

Select Case weekDay
    Case 1, 7
        MsgBox "周末"
    Case 2 To 6
        MsgBox "工作日"
    Case Else
        MsgBox "无效"
End Select

For…Next

Dim i
For i = 1 To 10 Step 2   ' 步长为2
    MsgBox i
Next

Do…Loop

Dim num
num = 0
Do While num < 5
    MsgBox num
    num = num + 1
Loop

5. 函数与过程

Function(有返回值)

Function Add(a, b)
    Add = a + b
End Function

MsgBox Add(15, 25)   ' 40

Sub(无返回值)

Sub SayHello(name)
    MsgBox "Hello, " & name
End Sub

Call SayHello("李四")
' 或直接
SayHello "李四"

6. 文件系统操作(最实用场景之一)

使用 Scripting.FileSystemObject

Dim fso, folder, file, ts

Set fso = CreateObject("Scripting.FileSystemObject")

' 创建文件夹
If Not fso.FolderExists("C:\MyTest") Then
    fso.CreateFolder("C:\MyTest")
End If

' 创建并写入文本文件
Set ts = fso.CreateTextFile("C:\MyTest\log.txt", True)
ts.WriteLine "当前时间:" & Now
ts.WriteLine "这是一行测试内容"
ts.Close

MsgBox "文件写入完成!"

读取文件

Set ts = fso.OpenTextFile("C:\MyTest\log.txt", 1)  ' 1=读取
Do Until ts.AtEndOfStream
    MsgBox ts.ReadLine
Loop
ts.Close

7. 注册表操作

Dim WshShell
Set WshShell = CreateObject("WScript.Shell")

' 写注册表
WshShell.RegWrite "HKCU\Software\MyApp\Name", "Grok", "REG_SZ"

' 读注册表
MsgBox WshShell.RegRead("HKCU\Software\MyApp\Name")

8. 执行外部程序

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

' 静默运行
WshShell.Run "notepad.exe", 1, False

' 等待程序结束
WshShell.Run "cmd /c ping 127.0.0.1", 0, True

9. 错误处理

On Error Resume Next   ' 忽略错误,继续执行

' 执行可能出错的代码
Set file = fso.OpenTextFile("不存在的文件.txt")

If Err.Number <> 0 Then
    MsgBox "错误:" & Err.Description
    Err.Clear
End If

小结

VBScript 虽然已被弃用,但仍然是 Windows 系统自动化最简单高效的工具之一。适合快速编写小工具、批量处理文件、修改注册表等任务。

如果你有具体需求(如批量重命名文件、监控文件夹、自动化 Excel 操作等),告诉我,我可以提供完整可运行的 .vbs 示例代码!

文章已创建 3511

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部