ZetCode

VBScript FreeSpace 属性

最后修改于 2025 年 4 月 9 日

VBScript 中的 FreeSpace 属性是 FileSystemObjectDrive 对象的一部分。它以字节为单位返回驱动器上可用的空闲空间量。此属性对于磁盘管理和监控脚本至关重要。它通过检查可用空间来帮助防止存储问题。

在大多数情况下,FreeSpace 提供的值与 AvailableSpace 属性相同。它是只读的,需要有效的驱动器规范。本教程通过实际示例介绍 FreeSpace 的用法。

FreeSpace 属性概述

FreeSpace 属性属于 Drive 对象。它以字节为单位返回指定驱动器的可用存储空间。该属性通过 VBScript 中的 FileSystemObject 访问。

主要功能包括字节级精度和与所有驱动器类型的兼容性。在可访问时,它可用于本地驱动器和网络驱动器。了解此属性有助于创建有效的磁盘管理脚本。该值代表用户数据的实际可用空间。

基本 FreeSpace 检查

此示例演示了使用 FreeSpace 检查 C: 驱动器上可用空间的最简单方法。它展示了如何访问属性并显示原始字节值。该脚本提供基本的驱动器空间信息。

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

WScript.Echo "Free space on C: drive: " & drive.FreeSpace & " bytes"

Set drive = Nothing
Set fso = Nothing

该脚本创建一个 FileSystemObject 并获取 C: 驱动器的引用。然后,它以字节为单位输出可用空间。该值代表驱动器上的所有可用空间。请记住在完成后释放对象。

将字节转换为可读格式

此示例通过将字节转换为更易读的格式来增强基本检查。它演示了如何从原始字节值计算兆字节和千兆字节。输出变得更加用户友好和易于理解。

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

freeMB = drive.FreeSpace / (1024 * 1024)
freeGB = drive.FreeSpace / (1024 * 1024 * 1024)

WScript.Echo "Free space: " & FormatNumber(freeMB, 2) & " MB"
WScript.Echo "Free space: " & FormatNumber(freeGB, 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
        freeGB = drive.FreeSpace / (1024 * 1024 * 1024)
        WScript.Echo drive.DriveLetter & ": " & FormatNumber(freeGB, 2) & " GB free"
    Else
        WScript.Echo drive.DriveLetter & ": Not ready"
    End If
Next

Set fso = Nothing

该脚本循环遍历系统中的所有驱动器。它在访问 FreeSpace 之前检查每个驱动器的就绪状态。就绪的驱动器以千兆字节显示可用空间。不可用的驱动器将显示“未准备好”消息。此方法可以安全地处理所有驱动器类型。

磁盘空间不足警告

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

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

warningThresholdGB = 5 ' 5 GB threshold
freeGB = drive.FreeSpace / (1024 * 1024 * 1024)

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

Set drive = Nothing
Set fso = Nothing

该脚本为 C: 驱动器定义了 5GB 的警告阈值。它将可用空间与此阈值进行比较。如果空间不足,则会显示警告消息。否则,它确认空间充足。此模式对于自动化监控脚本很有用。

网络驱动器可用空间检查

此示例演示了如何检查网络驱动器的可用空间。它展示了 FreeSpace 如何与映射的网络位置配合使用。该脚本会优雅地处理潜在的可访问性问题。

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

networkPath = "Z:" ' Replace with your network drive letter
On Error Resume Next

Set drive = fso.GetDrive(networkPath)

If Err.Number = 0 And drive.IsReady Then
    freeGB = drive.FreeSpace / (1024 * 1024 * 1024)
    WScript.Echo networkPath & " free space: " & FormatNumber(freeGB, 2) & " GB"
Else
    WScript.Echo "Cannot access drive " & networkPath
End If

On Error GoTo 0
Set drive = Nothing
Set fso = Nothing

该脚本尝试访问网络驱动器(本例中为 Z:)。如果驱动器不可用,错误处理可以防止崩溃。如果可访问,它将以千兆字节显示可用空间。此方法适用于任何有效的映射网络位置。始终为网络资源包含适当的错误处理。

来源

Drive 对象文档

在本文中,我们探讨了 VBScript 中的 FreeSpace 属性,涵盖了其用法和实际应用。从基本检查到网络驱动器监控,这些示例展示了有效的磁盘空间管理。有了这些知识,您就可以创建健壮的脚本来进行存储监控和维护。

作者

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

列出所有 VBScript 教程