ZetCode

VBScript Type 属性

最后修改于 2025 年 4 月 9 日

VBScript 中的 Type 属性用于在使用 FileSystemObject 时确定文件或文件夹的类型。它返回一个数字值,指示项目是文件、文件夹还是驱动器。此属性对于需要类型检查的文件系统操作至关重要。

Type 有助于在执行操作之前区分不同的文件系统对象。它通过确保操作与对象类型匹配来防止错误。本教程通过实际示例涵盖 Type,以演示其在各种场景下的用法。

Type 属性概述

Type 属性返回一个表示对象类型的整数。对于文件,它返回系统中注册的文件类型。对于文件夹,它返回 1,对于驱动器,它返回 2。该属性是只读的,可通过 FileSystemObject 对象访问。

常见的返回值包括文件夹的 1、驱动器的 2,以及各种文件类型对应的数字。文件类型与系统注册表关联相对应。理解这些值有助于通过适当的类型检查来创建健壮的文件处理脚本。

检查文件类型

此示例演示了如何使用 Type 属性检查文件类型。它展示了如何确定路径是否指向文件并显示其类型。该脚本使用 FileSystemObject 来访问该属性。

check_file_type.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\Windows\notepad.exe")

fileType = file.Type
WScript.Echo "File type: " & fileType ' Output: File type: Application

Set file = Nothing
Set fso = Nothing

该脚本创建一个 FileSystemObject 并获取对 notepad.exe 的引用。Type 属性对于可执行文件返回“Application”。不同的文件扩展名根据系统注册表返回不同的类型描述。

区分文件和文件夹

此示例展示了如何使用 Type 属性来区分文件和文件夹。它会检查给定路径的类型,并显示它是文件还是文件夹。这对于路径验证很有用。

file_folder_check.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
path = "C:\Windows"

If fso.FolderExists(path) Then
    Set folder = fso.GetFolder(path)
    WScript.Echo "Type: " & folder.Type ' Output: Type: File Folder
ElseIf fso.FileExists(path) Then
    Set file = fso.GetFile(path)
    WScript.Echo "Type: " & file.Type
Else
    WScript.Echo "Path not found"
End If

Set fso = Nothing

该脚本检查路径是否存在为文件夹或文件。对于文件夹,Type 属性返回“File Folder”。这种区分有助于在执行特定于类型的操作(如文件读取或目录列表)时防止错误。

检查驱动器类型

此示例演示了如何将 Type 属性与驱动器对象一起使用。它展示了如何确定路径是否代表驱动器及其类型。驱动器类型包括固定、可移动和网络驱动器。

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

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

Set drives = Nothing
Set fso = Nothing

该脚本枚举所有可用的驱动器并显示它们的类型。对于驱动器,Type 属性返回“Local Disk”或“CD-ROM Drive”之类的描述。此信息对于需要处理不同存储介质类型的脚本很有用。

处理多种文件类型

此示例展示了如何在目录中处理不同的文件类型。它列出了文件夹中的文件并显示它们的类型。该脚本演示了 Type 属性在文件分类中的实际用途。

multiple_file_types.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Windows\System32")

WScript.Echo "Files in System32:"
For Each file in folder.Files
    WScript.Echo file.Name & " - " & file.Type
Next

Set folder = Nothing
Set fso = Nothing

该脚本检索 System32 目录中的所有文件,并显示它们的名称和类型。不同的文件显示不同的类型描述,如“Application”、“DLL”或“Configuration Settings”。这有助于根据文件类型组织或处理文件。

在操作之前验证对象类型

此示例演示了如何在使用 Type 属性在操作之前验证对象类型。它在尝试读取文本文件之前检查路径是否指向文本文件。这可以防止由于文件类型不正确而导致的错误。

type_validation.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
filePath = "C:\temp\example.txt"

If fso.FileExists(filePath) Then
    Set file = fso.GetFile(filePath)
    If InStr(1, file.Type, "Text", 1) > 0 Then
        WScript.Echo "File is a text document"
    Else
        WScript.Echo "Not a text file: " & file.Type
    End If
Else
    WScript.Echo "File not found"
End If

Set fso = Nothing

该脚本检查文件是否存在,然后验证其类型是否包含“Text”。这种方法比仅检查文件扩展名更可靠。Type 属性提供系统注册的文件类型信息,以便进行准确验证。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 Type 属性,涵盖了其用法和实际应用。从简单的类型检查到复杂的文件系统操作,这些示例演示了可靠的对象类型识别。有了这些知识,您就可以通过健壮的类型验证来增强您的文件处理脚本。

作者

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

列出所有 VBScript 教程