VBS (VBScript) 是一种脚本语言,它本身没有像 cmd 那样的“命令”,而是通过对象和方法来执行操作,最核心的对象是 WScript.Shell,它允许我们与 Windows 的命令行环境进行交互。

核心概念:WScript.Shell 对象
要执行“打开”这类操作,我们首先需要创建一个 WScript.Shell 对象的实例,这就像拿到了一个可以指挥电脑的遥控器。
' 创建 WScript.Shell 对象
Set objShell = CreateObject("WScript.Shell")
我们使用这个对象的 Run 方法来运行程序或打开文件。
打开文件 (用关联程序)
这是最常见的用法,VBS 会根据文件的扩展名(如 .txt, .docx, .jpg),自动调用系统默认的程序来打开它。
语法:
objShell.Run "文件路径"

示例 1:打开一个文本文档
假设你的 test.txt 文件在 D:\MyFiles 目录下。
Set objShell = CreateObject("WScript.Shell")
' 注意:路径中的反斜杠 \ 在 VBS 中需要转义,写成两个 \\
filePath = "D:\MyFiles\test.txt"
objShell.Run filePath
' 清理对象,释放内存
Set objShell = Nothing
如何运行这个脚本?
- 将上面的代码复制到记事本中。
- 点击“文件” -> “另存为”,将文件类型选择为“所有文件”,然后命名为
openfile.vbs(后缀必须是.vbs)。 - 双击
openfile.vbs文件,它就会用默认的文本编辑器(如记事本)打开D:\MyFiles\test.txt。
打开文件夹 (文件资源管理器)
如果你想打开一个文件夹,而不是文件,可以使用 explorer.exe 这个程序。
语法:
objShell.Run "explorer.exe 文件夹路径"

示例 2:打开 D 盘的 MyFiles 文件夹
Set objShell = CreateObject("WScript.Shell")
folderPath = "D:\MyFiles"
' 使用 explorer.exe 来打开文件夹
objShell.Run "explorer.exe " & folderPath
Set objShell = Nothing
打开网址 (默认浏览器)
打开网址和打开文件夹类似,我们调用系统的默认浏览器。
语法:
objShell.Run "网址"
示例 3:打开 Google 主页
Set objShell = CreateObject("WScript.Shell")
url = "https://www.google.com"
' 直接运行网址字符串,系统会用默认浏览器打开
objShell.Run url
Set objShell = Nothing
打开“运行”对话框并输入命令
这个功能非常强大,你可以模拟在 Windows + R 后输入命令并回车的效果。
语法:
objShell.Run "cmd /c 命令"
或者直接运行命令:
objShell.Run "命令"
示例 4:打开命令提示符并切换到 D 盘
Set objShell = CreateObject("WScript.Shell")
' /c 表示执行完命令后关闭窗口
' /k 表示执行完命令后保持窗口打开
objShell.Run "cmd /k cd /d D:\"
Set objShell = Nothing
示例 5:打开计算器
Set objShell = CreateObject("WScript.Shell")
objShell.Run "calc"
Set objShell = Nothing
高级选项:Run 方法的第二个参数
Run 方法的完整语法是 objShell.Run(command, [window_style], [wait_on_return])。
command: 你要运行的命令或文件路径。window_style(可选): 控制窗口如何显示,这是一个数字。0: 隐藏窗口并激活其他窗口。1: 激活并显示窗口(正常状态)。2: 激活窗口并将其最小化。3: 激活窗口并将其最大化。- 默认值通常是
1或7,但1是最常用的。
wait_on_return(可选): 布尔值 (True/False),如果设为True,脚本会等待程序执行完毕后再继续,如果设为False(默认),脚本会立即继续执行下一行代码。
示例 6:以最小化方式打开记事本
Set objShell = CreateObject("WScript.Shell")
' 第二个参数 2 表示最小化窗口
objShell.Run "notepad", 2, False
Set objShell = Nothing
完整示例:一个多功能选择器
这个例子会弹出一个对话框,让你选择要执行的操作。
Set objShell = CreateObject("WScript.Shell")
' 创建一个消息框,提供三个选项
' vbYesNoCancel + vbQuestion 是按钮和图标的样式
' 6 表示用户点击了“是”
' 7 表示用户点击了“否”
' 2 表示用户点击了“取消”
answer = MsgBox("请选择要执行的操作:" & vbCrLf & _
"是 - 打开记事本" & vbCrLf & _
"否 - 打开 D 盘" & vbCrLf & _
"取消 - 退出脚本", _
vbYesNoCancel + vbQuestion, "VBS 打开示例")
If answer = vbYes Then
' 用户点击了“是”
objShell.Run "notepad"
ElseIf answer = vbNo Then
' 用户点击了“否”
objShell.Run "explorer.exe D:\"
Else
' 用户点击了“取消”,什么都不做
WScript.Echo "您取消了操作。"
End If
Set objShell = Nothing
| 任务 | VBS 代码示例 | 说明 |
|---|---|---|
| 打开文件 | objShell.Run "D:\data\report.docx" |
用默认程序打开文件。 |
| 打开文件夹 | objShell.Run "explorer.exe D:\data" |
用文件资源管理器打开文件夹。 |
| 打开网址 | objShell.Run "https://www.bing.com" |
用默认浏览器打开网址。 |
| 运行命令 | objShell.Run "calc" |
打开计算器。 |
| 窗口样式 | objShell.Run "notepad", 2, False |
以最小化方式打开记事本,脚本不等待。 |
| 带参数运行 | objShell.Run "mspaint.exe D:\image.jpg" |
用画图程序打开指定图片文件。 |
希望这个详细的解释能帮助你理解和使用 VBS 来执行“打开”操作!
