ZetCode

VBScript AvailableSpace 属性

最后修改于 2025 年 4 月 9 日

VBScript 中的 AvailableSpace 属性是 FileSystemObjectDrive 对象的一部分。它以字节为单位返回驱动器上的可用空间量。此属性对于脚本中的磁盘空间监视和管理任务至关重要。

AvailableSpace 提供用户可用的实际可用空间,并考虑了配额。在某些环境中,它与 FreeSpace 不同。本教程通过实际示例涵盖 AvailableSpace,以演示其在各种场景中的用法。

AvailableSpace 属性概述

AvailableSpace 属性返回一个数值,表示驱动器上可用的字节数。它通过从 FileSystemObject 获取的 Drive 对象进行访问。如果启用了配额,该值将包括用户磁盘配额内的可用空间。

主要功能包括准确的空间报告和与所有驱动器类型的兼容性。它适用于本地驱动器、网络共享和可移动媒体。了解此属性有助于创建健壮的磁盘管理脚本。

基本 AvailableSpace 检查

此示例演示了 AvailableSpace 最简单的用法,用于检查 C: 驱动器上的可用空间。它展示了如何访问该属性并显示原始字节值。该脚本为更复杂的磁盘空间检查奠定了基础。

basic_availablespace.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("C:")
availableBytes = drive.AvailableSpace

WScript.Echo "Available space on C: drive: " & availableBytes & " bytes"

Set drive = Nothing
Set fso = Nothing

该脚本创建一个 FileSystemObject 并获取 C: 驱动器对象。然后,它检索 AvailableSpace 属性值。结果以字节为单位显示。此基本示例构成了磁盘空间检查的核心。

将字节转换为可读格式

原始字节值很难解释,因此此示例将可用空间转换为人类可读的格式。它演示了如何从字节值计算兆字节和千兆字节。转换使输出更有用。

readable_format.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("C:")

bytes = drive.AvailableSpace
mb = bytes / (1024 * 1024)
gb = bytes / (1024 * 1024 * 1024)

WScript.Echo "Available space:"
WScript.Echo FormatNumber(bytes, 0) & " bytes"
WScript.Echo FormatNumber(mb, 2) & " MB"
WScript.Echo FormatNumber(gb, 2) & " GB"

Set drive = Nothing
Set fso = Nothing

该脚本从原始字节值计算兆字节和千兆字节。它使用 FormatNumber 来获得清晰的数字显示。这种方法使用户和管理员更容易访问磁盘空间信息。

检查多个驱动器

此示例演示了检查系统中所有驱动器的可用空间。它遍历 Drives 集合并报告每个驱动器的空间。该脚本展示了如何处理不同的驱动器类型和状态。

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

For Each drive In fso.Drives
    If drive.IsReady Then
        gb = drive.AvailableSpace / (1024^3)
        WScript.Echo drive.DriveLetter & ": " & FormatNumber(gb, 2) & " GB free"
    Else
        WScript.Echo drive.DriveLetter & ": Drive not ready"
    End If
Next

Set fso = Nothing

该脚本在访问 AvailableSpace 之前检查每个驱动器的就绪状态。它将空间转换为千兆字节以便于阅读。输出显示所有就绪驱动器的可用空间,并跳过不可用的驱动器。此方法可防止与可移动媒体相关的错误。

低磁盘空间警告

这个实际示例创建了一个低磁盘空间警告系统。它检查可用空间是否低于指定阈值。该脚本演示了如何使用 AvailableSpace 进行主动系统监视。

low_space_warning.vbs
Const WARNING_LEVEL_GB = 5 ' 5 GB threshold

Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("C:")

availableGB = drive.AvailableSpace / (1024^3)

If availableGB < WARNING_LEVEL_GB Then
    WScript.Echo "WARNING: Low disk space on C: drive!"
    WScript.Echo "Only " & FormatNumber(availableGB, 2) & " GB remaining"
Else
    WScript.Echo "Disk space OK: " & FormatNumber(availableGB, 2) & " GB free"
End If

Set drive = Nothing
Set fso = Nothing

该脚本将警告阈值定义为 5 GB。它将可用空间与此阈值进行比较,并发出适当的消息。此方法可以扩展为维护脚本中的自动化警报。

比较 AvailableSpace 和 FreeSpace

此示例重点介绍了 AvailableSpaceFreeSpace 属性之间的区别。它在同一驱动器上演示了这两个属性。比较有助于理解何时使用每个属性。

compare_properties.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("C:")

availableGB = drive.AvailableSpace / (1024^3)
freeGB = drive.FreeSpace / (1024^3)

WScript.Echo "AvailableSpace: " & FormatNumber(availableGB, 2) & " GB"
WScript.Echo "FreeSpace: " & FormatNumber(freeGB, 2) & " GB"
WScript.Echo "Difference: " & FormatNumber(freeGB - availableGB, 2) & " GB"

Set drive = Nothing
Set fso = Nothing

该脚本显示两个属性值及其差异。在大多数系统上,这些值将是相同的。但是,在启用配额的环境中,AvailableSpace 反映了用户的配额限制。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 AvailableSpace 属性,涵盖了其用法和实际应用。从基本检查到高级监视,这些示例演示了可靠的磁盘空间管理。有了这些知识,您就可以通过健壮的磁盘空间监视来增强您的系统管理脚本。

作者

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

列出所有 VBScript 教程