引言
Visual Basic Scripting Edition(VBS)是一种基于Visual Basic的轻量级脚本语言,广泛应用于自动化任务、配置设置和网络脚本等场景。本文将带你探索VBS编程的魅力,通过30个实用实例,让你轻松入门VBS编程。
一、VBS简介
VBS脚本文件以.vbs为扩展名,可以在Windows操作系统中直接运行。它不需要安装额外的编译器或解释器,只需使用内置的Windows Script Host(WSH)即可执行。
1.1 WSH简介
Windows Script Host是一个基于COM的脚本环境,它提供了执行各种脚本语言的能力,包括VBS、JavaScript和VBScript等。
1.2 VBS特点
- 易于学习:VBS语法与Visual Basic相似,对于有VB基础的开发者来说,学习VBS较为简单。
- 跨平台:VBS脚本可以在Windows、Linux和Mac等操作系统上运行,只需安装相应的解释器。
- 高效:VBS脚本可以自动化完成许多重复性工作,提高工作效率。
二、VBS编程基础
在开始实例学习之前,我们需要掌握一些VBS编程的基础知识。
2.1 数据类型
VBS支持以下数据类型:
- 数值型(Integer、Long、Single、Double)
- 文本型(String)
- 日期型(Date)
- 布尔型(Boolean)
2.2 变量和常量
变量用于存储数据,常量用于定义不变的值。
Dim a, b, c
a = 10
b = "Hello"
c = "World"
2.3 控制结构
VBS支持以下控制结构:
- 条件语句(If、Then、Else)
- 循环语句(For、While)
If a > b Then
MsgBox "a 大于 b"
Else
MsgBox "a 不大于 b"
End If
For i = 1 To 5
MsgBox i
Next
2.4 函数
VBS提供了丰富的内置函数,例如:
- MsgBox:显示消息框
- MsgBox:返回值
- MsgBox:获取用户输入
MsgBox "Hello, World!"
a = MsgBox("你确定吗?", vbYesNo)
If a = vbYes Then
MsgBox "你选择了是!"
Else
MsgBox "你选择了否!"
End If
Dim result
result = MsgBox("请输入你的名字:", vbInputBox)
MsgBox "你的名字是:" & result
三、30个实用实例
以下是30个VBS编程实用实例,涵盖了各种场景:
3.1 检查计算机名
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOS
MsgBox "计算机名:" & objOS.Name
Next
3.2 关闭计算机
Set objShell = CreateObject("WScript.Shell")
objShell.Run "shutdown /s /t 1"
3.3 列出当前目录文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colFiles = objFSO.GetFolder(".").Files
For Each objFile in colFiles
WScript.Echo objFile.Name
Next
3.4 创建文件夹
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CreateFolder("NewFolder")
3.5 删除文件夹
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFolder("OldFolder", True)
3.6 复制文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "OldFile.txt", "NewFile.txt"
3.7 移动文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "OldFile.txt", "NewFolder\NewFile.txt"
3.8 删除文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile "OldFile.txt"
3.9 检查文件是否存在
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists("TestFile.txt") Then
MsgBox "文件存在!"
Else
MsgBox "文件不存在!"
End If
3.10 检查文件夹是否存在
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists("TestFolder") Then
MsgBox "文件夹存在!"
Else
MsgBox "文件夹不存在!"
End If
3.11 获取系统信息
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOS
MsgBox "操作系统:" & objOS.Name
MsgBox "安装日期:" & objOS.InstallDate
Next
3.12 获取CPU信息
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colCPU = objWMIService.ExecQuery("Select * from Win32_Processor")
For Each objCPU in colCPU
MsgBox "CPU 名称:" & objCPU.Name
MsgBox "CPU 类型:" & objCPU.ProcessorType
Next
3.13 获取内存信息
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colMemory = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory")
For Each objMemory in colMemory
MsgBox "内存容量:" & objMemory.Capacity / 1024 / 1024 & " MB"
Next
3.14 获取磁盘信息
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colDisk = objWMIService.ExecQuery("Select * from Win32_DiskDrive")
For Each objDisk in colDisk
MsgBox "磁盘型号:" & objDisk.Model
MsgBox "磁盘容量:" & objDisk.Size / 1024 / 1024 / 1024 & " GB"
Next
3.15 获取网络信息
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colNetwork = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")
For Each objNetwork in colNetwork
MsgBox "网络接口:" & objNetwork.Index
MsgBox "IP 地址:" & objNetwork.IPAddress(0)
Next
3.16 检查网络连接
Set objNetwork = CreateObject("WScript.Network")
If objNetwork.IsConnected Then
MsgBox "网络连接正常!"
Else
MsgBox "网络连接异常!"
End If
3.17 自动化备份
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Backup")
objFSO.CopyFolder "C:\Data", "C:\Backup\Backup_" & FormatDateTime(Now, 1)
3.18 检查软件安装
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colSoftware = objWMIService.ExecQuery("Select * from Win32_Product")
For Each objSoftware in colSoftware
MsgBox "软件名称:" & objSoftware.Name
MsgBox "版本:" & objSoftware.Version
Next
3.19 自动更新
Set objShell = CreateObject("WScript.Shell")
objShell.Run "msiexec /update /quiet /norestart"
3.20 自动重启
Set objShell = CreateObject("WScript.Shell")
objShell.Run "shutdown /r /t 1"
3.21 自动关机
Set objShell = CreateObject("WScript.Shell")
objShell.Run "shutdown /s /t 1"
3.22 自动运行程序
Set objShell = CreateObject("WScript.Shell")
objShell.Run "C:\Program Files\Notepad\notepad.exe"
3.23 自动发送邮件
Set objNetwork = CreateObject("WScript.Network")
Set objShell = CreateObject("CDO.Message")
objShell.From = "sender@example.com"
objShell.To = "receiver@example.com"
objShell.Subject = "测试邮件"
objShell.TextBody = "这是一封测试邮件!"
objShell.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objShell.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
objShell.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objShell.Configuration.Fields.Update
objShell.Send
3.24 自动修改注册表
Set objReg = GetObject("winmgmts:\\.\root\default:StdRegProv")
objReg.GetStringValue "HKEY_CURRENT_USER\Software\MyApp", "Setting", strValue
objReg.SetStringValue "HKEY_CURRENT_USER\Software\MyApp", "NewSetting", strValue
3.25 自动创建快捷方式
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
objShell.CreateShortcut "C:\Desktop\Notepad.lnk"
objShell.ShellExecute "C:\Windows\notepad.exe", "", "", "open", 1
3.26 自动修改文件夹权限
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Folder")
objFolder.Security Permissions " Everyone ", " FullControl ", True
3.27 自动下载文件
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c powershell -Command ""(New-Object Net.WebClient).DownloadFile('http://example.com/file.zip', 'C:\Download\file.zip')"""
3.28 自动解压文件
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c powershell -Command ""Expand 'C:\Download\file.zip' -DestinationPath 'C:\ExtractedFiles'"""
3.29 自动创建虚拟机
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c vmware-vSphereClient.exe"
3.30 自动创建虚拟网络
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c vmware-vSphereClient.exe"
四、总结
通过本文的学习,相信你已经对VBS编程有了初步的了解。VBS编程可以帮助你实现许多自动化任务,提高工作效率。希望这些实用实例能够帮助你更好地掌握VBS编程,为你的工作带来便利。
