代码之家  ›  专栏  ›  技术社区  ›  simonalexander2005

vbscript中objlogicalisk.DriveType的枚举值是指什么?

  •  1
  • simonalexander2005  · 技术社区  · 15 年前

    Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
    Dim colDrives : Set colDrives = objFSO.Drives
    Dim objWMIService : Set objWMIService = GetObject("winmgmts:")
    Dim objLogicalDisk
    Dim objDrive
    
    For Each objDrive in colDrives
        Set objLogicalDisk = 
    objWMIService.Get("Win32_LogicalDisk.DeviceID='" & objDrive.DriveLetter & ":'")
        Log(objLogicalDisk.DriveType)
    Next
    

    用于获取系统上每个驱动器的磁盘类型。我想知道的是,返回的数字('3','4','5',等等)是指什么?在互联网上,我找到了不同的答案,它们应该在我的系统-根据互联网:

    未知=0

    固定=2'固定介质(硬盘)

    远程=3'网络驱动器

    RAM磁盘=5'RAM磁盘

    根据我目前收集的数据,3=本地C驱动器,5=本地D(DVD)驱动器,4=网络驱动器。

    如果有人能帮我澄清这个模棱两可的问题,那就太好了:)

    2 回复  |  直到 15 年前
        1
  •  1
  •   Helen    15 年前

    官方WMI引用位于 MSDN library .

    Win32_LogicalDisk 类引用描述了以下内容 DriveType 价值观:

    Value    Meaning
    --------------------------
    0        Unknown
    1        No Root Directory
    2        Removable Disk
    3        Local Disk
    4        Network Drive
    5        Compact Disc
    6        RAM Disk
        2
  •  2
  •   steje    10 年前

    我发现这篇文章是在寻找一些使用DriveType属性的例子。

    FWIW,虽然Helen清楚地给出了正确的答案,但我认为还值得注意的是,OP在结果中遇到一些混乱的一个可能原因是他混合和匹配了来自不同接口的对象的使用。

    他开始使用FileSystemObject获取驱动器对象的列表,然后切换到WMI,从每个驱动器对象获取他想要的属性。驱动器对象的DriveType属性值在FileSystemObject下与在WMI下不同。

    与Helen为WMI提供的内容类似,但对FileSystemObject提供的内容是:

    https://msdn.microsoft.com/en-us/library/aa243132(v=vs.60).aspx

    Value    Meaning
    --------------------------
    0        Unknown
    1        Removable Disk
    2        Fixed Disk
    3        Network Drive
    4        Compact Disc
    5        RAM Disk
    

    Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
    Dim colDrives : Set colDrives = objFSO.Drives
    Dim objDrive
    
    For Each objDrive in colDrives
        Wscript.Echo  objDrive.DriveType
    Next