ZetCode

VBScript WScript 对象

最后修改于 2025 年 4 月 4 日

WScript 对象是 VBScript 中 Windows 脚本宿主 (WSH) 的基本组成部分。它提供了对脚本执行环境的访问以及各种实用函数。本教程将通过实际示例,介绍 WScript 对象的属性和方法,用于自动化脚本任务。

WScript 对象概述

在 Windows 脚本宿主下运行的任何 VBScript 中,WScript 对象都是自动可用的。它提供有关脚本环境的信息以及控制脚本执行的方法。主要属性包括 ArgumentsFullNameNamePathVersion

重要方法包括用于输出的 Echo、用于暂停执行的 Sleep、用于终止脚本的 Quit 以及用于创建 COM 对象的 CreateObject。理解这些方法有助于创建更强大、更灵活的脚本。

显示脚本信息

此示例演示了如何使用 WScript 属性来显示有关脚本执行环境的信息。我们将显示脚本名称、路径和 WSH 版本。

script_info.vbs
WScript.Echo "Script Name: " & WScript.Name
WScript.Echo "Script Full Path: " & WScript.FullName
WScript.Echo "Script Directory: " & WScript.Path
WScript.Echo "WSH Version: " & WScript.Version
WScript.Echo "Running as: " & WScript.ScriptName

此代码输出有关正在运行的脚本和环境的详细信息。Name 属性根据宿主返回“WScript”或“CScript”。FullName 显示脚本宿主可执行文件的完整路径。

处理命令行参数

WScript 对象通过其 Arguments 集合提供对命令行参数的访问。这允许脚本在执行时接受和处理输入参数。

arguments.vbs
Dim args, i
Set args = WScript.Arguments

If args.Count = 0 Then
    WScript.Echo "No arguments provided."
Else
    WScript.Echo "Number of arguments: " & args.Count
    For i = 0 To args.Count - 1
        WScript.Echo "Argument " & (i + 1) & ": " & args(i)
    Next
End If

此脚本检查参数并在存在时显示它们。Count 属性提供参数的数量,而各个参数通过索引(从 0 开始)进行访问。使用参数运行此脚本以查看它们列出。

创建 COM 对象

CreateObject 方法允许与 COM 组件进行交互。此示例演示了如何创建 FileSystemObject 来执行文件操作。

com_object.vbs
Dim fso, file
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

If fso.FileExists("test.txt") Then
    Set file = fso.GetFile("test.txt")
    WScript.Echo "File size: " & file.Size & " bytes"
Else
    WScript.Echo "File not found"
End If

此脚本检查文件是否存在,如果找到则显示其大小。CreateObject 方法通过其 ProgID 实例化 COM 对象。在这里,我们使用 FileSystemObject 与文件系统进行交互。

控制脚本执行

WScript 提供控制脚本流程的方法。Sleep 暂停执行,而 Quit 则以可选的退出代码终止脚本。

execution_control.vbs
WScript.Echo "Starting script execution..."
WScript.Sleep 2000  ' Pause for 2 seconds
WScript.Echo "After 2 second pause"

Dim result
result = MsgBox("Continue script?", vbYesNo, "Confirmation")

If result = vbNo Then
    WScript.Quit 1  ' Exit with error code 1
End If

WScript.Echo "Script completed successfully"

此脚本演示了暂停执行和条件终止。Sleep 方法接受毫秒,而 Quit 可以将退出代码返回给调用进程。这些对于计时操作和错误处理非常有用。

使用 WScript.Network 进行网络操作

WScript 对象可以创建一个 Network 对象来进行与网络相关的操作。此示例展示了如何检索当前用户和计算机信息。

network_info.vbs
Dim net
Set net = WScript.CreateObject("WScript.Network")

WScript.Echo "Computer Name: " & net.ComputerName
WScript.Echo "User Domain: " & net.UserDomain
WScript.Echo "User Name: " & net.UserName
WScript.Echo "Current Printer: " & net.Printer

此脚本显示与当前会话相关的网络信息。Network 对象提供对用户凭据、计算机名称和打印机设置的访问。这些对于系统管理脚本非常有用。

来源

WScript 对象文档

在本文中,我们探讨了 WScript 对象在 VBScript 中的功能,涵盖了基本属性和方法。从访问脚本信息到控制执行流程以及处理 COM 对象,这些示例为 Windows 脚本提供了坚实的基础。掌握 WScript 对象可以实现更强大、更灵活的自动化解决方案。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有多年的编程经验。我自 2007 年以来一直在撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有八年以上的经验。

列出所有 VBScript 教程