ZetCode

VBScript Drives 属性

最后修改于 2025 年 4 月 9 日

VBScript 中的 Drives 属性是 FileSystemObject 的一部分。它返回计算机上所有可用驱动器的集合。这包括硬盘驱动器、CD-ROM 驱动器、RAM 磁盘和网络驱动器。该属性提供了对每个驱动器详细信息的访问。

Drives 支持枚举和检查所有系统驱动器。它有助于执行需要检查驱动器可用性或属性的脚本。本教程通过实际示例涵盖 Drives 属性,以演示其在各种场景中的用法。

Drives 属性概述

Drives 属性返回一个 Drives 集合对象。集合中的每个项都是一个 Drive 对象,代表一个物理或逻辑驱动器。该集合是只读的,并且在添加或删除驱动器时会自动更新。

主要功能包括访问驱动器类型、可用空间和卷信息。该属性适用于操作系统识别的所有驱动器类型。理解此属性有助于创建健壮的驱动器管理脚本。

列出所有可用驱动器

此示例演示了如何枚举系统上的所有可用驱动器。它展示了 Drives 属性的基本用法,用于遍历集合。每个驱动器的字母将显示在输出中。

list_drives.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drives = fso.Drives

For Each drive In drives
    WScript.Echo "Drive: " & drive.DriveLetter
Next

Set fso = Nothing

脚本创建一个 FileSystemObject 并访问其 Drives 属性。然后,它循环遍历集合中的每个驱动器。将显示每个驱动器的 DriveLetter 属性。这提供了一个所有可用驱动器的简单列表。

检查驱动器类型

此示例展示了如何确定系统中每个驱动器的类型。DriveType 属性返回一个表示驱动器类型的数值。脚本会将这些值转换为人类可读的描述。

drive_types.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drives = fso.Drives

For Each drive In drives
    Select Case drive.DriveType
        Case 0: typeDesc = "Unknown"
        Case 1: typeDesc = "Removable"
        Case 2: typeDesc = "Fixed"
        Case 3: typeDesc = "Network"
        Case 4: typeDesc = "CD-ROM"
        Case 5: typeDesc = "RAM Disk"
    End Select
    
    WScript.Echo drive.DriveLetter & ": " & typeDesc
Next

Set fso = Nothing

脚本枚举所有驱动器并检查每个驱动器的 DriveTypeSelect Case 语句将数值类型转换为描述性字符串。这有助于识别驱动器是固定类型、可移动类型还是基于网络的类型。

检查驱动器可用空间

此示例演示了如何检查驱动器上的可用空间。它使用 FreeSpace 属性,该属性返回可用字节数。脚本将其转换为更易读的千兆字节格式。

free_space.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drives = fso.Drives

For Each drive In drives
    If drive.IsReady Then
        freeGB = Round(drive.FreeSpace / (1024^3), 2)
        WScript.Echo drive.DriveLetter & ": " & freeGB & " GB free"
    Else
        WScript.Echo drive.DriveLetter & ": Drive not ready"
    End If
Next

Set fso = Nothing

脚本在访问空间信息之前检查每个驱动器的就绪状态。对于就绪的驱动器,它会计算以千兆字节为单位的可用空间。IsReady 检查可防止访问空 CD-ROM 驱动器等不可用驱动器时出错。为了清晰起见,结果显示为两位小数。

获取卷信息

此示例检索每个驱动器的卷名称和文件系统信息。它展示了 VolumeNameFileSystem 属性。这些属性提供了有关格式化驱动器的其他详细信息。

volume_info.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drives = fso.Drives

For Each drive In drives
    If drive.IsReady Then
        info = drive.DriveLetter & ": " & drive.VolumeName
        info = info & " (" & drive.FileSystem & ")"
        WScript.Echo info
    End If
Next

Set fso = Nothing

脚本在访问卷属性之前检查驱动器就绪状态。对于每个就绪驱动器,它会将驱动器字母、卷名称和文件系统类型结合起来。这会创建一个信息性字符串,例如“C: System (NTFS)”。为避免错误,将跳过未就绪的驱动器。

检查驱动器总大小

此示例演示了如何使用 TotalSize 属性获取每个驱动器的总大小。与可用空间类似,该值以字节为单位,并转换为千兆字节以便于阅读。将同时显示总大小和可用空间。

drive_size.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drives = fso.Drives

For Each drive In drives
    If drive.IsReady Then
        totalGB = Round(drive.TotalSize / (1024^3), 2)
        freeGB = Round(drive.FreeSpace / (1024^3), 2)
        usedGB = totalGB - freeGB
        
        WScript.Echo drive.DriveLetter & ": " & usedGB & " GB used of " & totalGB & " GB"
    End If
Next

Set fso = Nothing

脚本为每个就绪驱动器计算总空间和已用空间。已用空间是通过从总空间中减去可用空间得出的。所有值都转换为以两位小数表示的千兆字节。这提供了驱动器容量和使用情况的全面视图。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 Drives 属性,涵盖了其用法和实际应用。从简单的枚举到详细的驱动器信息检索,这些示例展示了全面的驱动器管理。有了这些知识,您就可以通过强大的驱动器检查功能来增强您的脚本。

作者

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

列出所有 VBScript 教程