# DriveGet

获取计算机驱动器的各种类型的信息.

    DriveGet, OutputVar, SubCommand , Value

OutputVar 参数是用于存储结果的变量的名称. SubCommand 和 Value 参数相互依赖, 其用法如下所示.

## 子命令

对于 SubCommand, 指定以下命令之一:

- List: 检索(获取) 一串字母, 其中每个字母表示系统中的一个驱动器.
- Capacity: 检索指定路径的总容量, 以 MB 为单位.
- FileSystem: 检索指定驱动器的文件系统的类型.
- Label: 检索指定驱动器的卷标.
- Serial: 检索指定驱动器的卷序列号.
- Type: 检索指定路径的驱动器类型.
- Status: 检索指定路径的状态.
- StatusCD: 检索 CD 或 DVD 驱动器的媒体状态.

### List

检索一串字母, 其中每个字母表示系统中的一个驱动器. 例如: ACDEZ.

    DriveGet, OutputVar, List , Type

如果省略 Type, 则获取所有类型的驱动器. 否则, 指定 Type 为下列单词的其中一个来获取该特定类型的驱动器: CDROM, REMOVABLE, FIXED, NETWORK, RAMDISK, UNKNOWN.

### Capacity

检索指定 Path(例如 `C:\`) 的总容量, 单位为 MB.

    DriveGet, OutputVar, Capacity, Path

使用 DriveSpaceFree 来获取可用空间. Cap 可用来代替 Capacity.

### FileSystem

检索 Drive 的文件系统的类型.

    DriveGet, OutputVar, FileSystem, Drive

Drive 由驱动器字母, 跟着一个冒号和可选的反斜杠组成, 或为 UNC 名称, 例如 `\\server1\share1`. OutputVar 将被设为下列单词的其中一个: FAT, FAT32, NTFS, CDFS(通常表示 CD), UDF(通常表示 DVD). 如果驱动器中不包含格式化的媒体, OutputVar 被置空且 ErrorLevel 被置为 1. FS 可用来代替 FileSystem.

### Label

检索 Drive 的卷标.

    DriveGet, OutputVar, Label, Drive

Drive 由驱动器字母, 跟着冒号和可选的反斜杠组成, 或为 UNC 名称, 例如 `\\server1\share1`. 要改变卷标, 请参照此例: `Drive, Label, C:, MyLabel`.

### Serial

检索以十进制数表示的 Drive 的卷序列号.

    DriveGet, OutputVar, Serial, Drive

Drive 由驱动器字母, 跟着冒号和可选的反斜杠组成, 或为 UNC 名称, 例如 `\\server1\share1`. 请参阅 Format() 或 SetFormat 了解如何把它转换成十六进制.

### Type

检索 Path 的驱动器类型.

    DriveGet, OutputVar, Type, Path

OutputVar 为下列单词的其中一个: Unknown, Removable, Fixed, Network, CDROM, RAMDisk.

### Status

检索 Path 的状态.

    DriveGet, OutputVar, Status, Path

OutputVar 为下列单词的其中一个: Unknown(能表示未格式化/RAW), Ready, NotReady(常表示不含媒体的可移动驱动器), Invalid(Path 不存在或为当前无法访问的网络驱动器, 等等.)

### StatusCD

检索 CD 或 DVD 驱动器的媒体状态.

    DriveGet, OutputVar, StatusCD , Drive

Drive 由驱动器字母跟着冒号组成. 如果省略 Drive, 则使用默认的 CD/DVD 驱动器. 如果无法确定它的状态, OutputVar 被置空. 否则, 它被设置为下列字符串的其中一个:

字符串 | 描述
--- | ---
not ready | 驱动器未准备好被访问, 可能因为正忙于写入操作. 已知限制: 当驱动器里是 DVD 而不是 CD 时, 也会出现 "未准备好" 的情况.
open | 驱动器里没有光盘, 或者托盘已弹出.
playing | 驱动器正在播放光盘.
paused | 之前播放的音频或视频现在已暂停.
seeking | 驱动器正在寻道.
stopped | 驱动器里有 CD 但当前没有进行访问.

此子命令对网络驱动器或非 CD/DVD 驱动器不起作用; 如果因为这种或其他原因失败了, 则 OutputVar 被置空且 ErrorLevel 被置为 1.

如果托盘刚才被关闭, 则此子命令可能需要一些时间才能完成.

要弹出或收回托盘, 请参阅 Drive 命令.

## 错误处理

[v1.1.04+]: 此命令失败时会抛出异常. 想了解更多信息, 请参阅运行时错误.

如果遇到问题则 ErrorLevel 被置为 1, 否则为 0.

## 备注

此命令的一些子命令参数 Path 中可以接受网络共享名, 例如 `\\MyServer\MyShare\`.

## 相关

Drive, DriveSpaceFree

## 示例

允许用户选择一个驱动器来分析它.

    FileSelectFolder, folder, , 3, Pick a drive to analyze:
    if not folder
        return
    DriveGet, list, List
    DriveGet, cap, Capacity, %folder%
    DriveSpaceFree, free, %folder%
    DriveGet, fs, FileSystem, %folder%
    DriveGet, label, Label, %folder%
    DriveGet, serial, Serial, %folder%
    DriveGet, type, Type, %folder%
    DriveGet, status, Status, %folder%
    MsgBox All Drives: %list%`nSelected Drive: %folder%`nDrive Type: %type%`nStatus: %status%`nCapacity: %cap% M`nFree Space: %free% M`nFilesystem: %fs%`nVolume Label: %label%`nSerial Number: %serial%

dftg