ZetCode

VBScript DriveExists 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 DriveExists 方法是 FileSystemObject 的一部分。它检查系统中是否存在指定的驱动器。如果驱动器存在,此方法返回 True,否则返回 False。它通常在执行驱动器操作之前使用,以避免错误。

DriveExists 接受驱动器盘符或 UNC 路径作为输入。它有助于创建能够处理各种系统配置的健壮脚本。本教程将通过实际示例涵盖 DriveExists 的用法。

DriveExists 方法概述

DriveExists 方法接受一个参数:驱动器规范。它返回一个布尔值,指示驱动器的存在。该方法可通过 VBScript 脚本中的 FileSystemObject 使用。

主要功能包括支持本地和网络驱动器。它同时支持带盘符的驱动器 (C:) 和 UNC 路径 (\\server\share)。DriveExists 不会验证驱动器的就绪状态或可访问性。了解此方法有助于创建可靠的驱动器处理脚本。

检查本地驱动器是否存在

此示例演示了如何检查本地驱动器是否存在。它展示了 DriveExists 与驱动器盘符的基本用法。脚本检查 C: 驱动器并显示结果。

check_local_drive.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.DriveExists("C:") Then
    WScript.Echo "Drive C: exists"
Else
    WScript.Echo "Drive C: does not exist"
End If

Set fso = Nothing

该脚本创建一个 FileSystemObject 并为 C: 驱动器调用 DriveExists。它显示驱动器是否存在。这种基本检查在对驱动器执行文件操作之前很有用。

检查网络驱动器是否存在

此示例展示了如何使用 UNC 路径检查网络驱动器。它演示了 DriveExists 与网络共享的用法。脚本验证特定网络路径是否可用。

check_network_drive.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
networkPath = "\\server\share"

If fso.DriveExists(networkPath) Then
    WScript.Echo "Network drive exists: " & networkPath
Else
    WScript.Echo "Network drive not found: " & networkPath
End If

Set fso = Nothing

该脚本检查网络路径 "\\server\share" 是否存在。请注意,这仅验证路径可用性,不验证身份验证。网络驱动器必须正确映射或可访问才能使此检查成功。

检查多个驱动器

此示例演示了如何依次检查多个驱动器。它展示了如何在循环中使用 DriveExists。脚本检查从 A: 到 Z: 的驱动器并报告存在的驱动器。

check_multiple_drives.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
WScript.Echo "Existing drives on this system:"

For i = 65 To 90 ' ASCII codes for A-Z
    driveLetter = Chr(i) & ":"
    If fso.DriveExists(driveLetter) Then
        WScript.Echo " - " & driveLetter
    End If
Next

Set fso = Nothing

该脚本遍历所有可能的驱动器盘符。对于每个存在的驱动器,它都会显示驱动器盘符。这种方法对于盘点系统中可用的驱动器很有用。

操作前验证驱动器

此示例展示了在执行文件操作之前使用 DriveExists 的实际用法。它通过首先检查驱动器是否存在来演示防御性编程。脚本仅在驱动器存在时才尝试创建文件。

validate_drive_before_operation.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
targetDrive = "D:"
filePath = targetDrive & "\testfile.txt"

If fso.DriveExists(targetDrive) Then
    Set file = fso.CreateTextFile(filePath)
    file.WriteLine "Test content"
    file.Close
    WScript.Echo "File created successfully"
Else
    WScript.Echo "Drive " & targetDrive & " not available"
End If

Set fso = Nothing

该脚本在尝试创建文件之前检查 D: 驱动器是否存在。这可以防止在使用可能不可用的驱动器时出错。此类检查可以使脚本在各种环境中更加健壮。

使用不同格式检查驱动器

此示例探讨了 DriveExists 如何处理不同的驱动器规范格式。它测试了指定同一驱动器的各种方法。结果显示了该方法在输入格式方面的灵活性。

drive_format_test.vbs
Set fso = CreateObject("Scripting.FileSystemObject")

WScript.Echo "Checking drive C: with different formats:"
WScript.Echo "C:    -> " & fso.DriveExists("C:")
WScript.Echo "C:\   -> " & fso.DriveExists("C:\")
WScript.Echo "C     -> " & fso.DriveExists("C")
WScript.Echo "c:    -> " & fso.DriveExists("c:")

Set fso = Nothing

该脚本测试了指定 C: 驱动器的四种不同方法。DriveExists 能够一致地处理所有这些格式。请注意,该方法对驱动器盘符不区分大小写。这种灵活性使得在脚本中使用该方法更加容易。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 DriveExists 方法,涵盖了其用法和实际应用。从简单的检查到防御性编程模式,这些示例展示了可靠的驱动器验证。有了这些知识,您就可以通过健壮的驱动器处理来增强您的脚本。

作者

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

列出所有 VBScript 教程