如何通过 Windows shell(bat、cmd)获取系统上的驱动器号列表?

如何通过 Windows shell(bat、cmd)获取系统上的驱动器号列表?

如何通过 bat 文件获取 Windows 系统上的驱动器号及其关联标签的列表?

答案1

这将获得大部分内容:

Net Use

如果您有任何通过 subst 映射的驱动器,您还需要获取这些:

Subst

为了完整起见,您可以在 Powershell 中这样做(如果您使用的是 Windows 7 或已安装它):

gwmi win32_LogicalDisk -filter DriveType=4

您也可以使用 WMI 从命令提示符或批处理文件中执行此操作,如下所示:

wmic logicaldisk get caption,providername,drivetype,volumename

答案2

要使用 diskpart,无需创建中间文件。尝试:

echo list volume | diskpart

答案3

@echo off
cls
setlocal enabledelayedexpansion
set "_DRIVE.LETTERS.FREE=Z Y X W V U T S R Q P O N M L K J I H G F E D C B A "
for /f "skip=1 tokens=1,2 delims=: " %%a in ('wmic logicaldisk get deviceid^,volumename') do (
   set "_DRIVE.LETTERS.USED=!_DRIVE.LETTERS.USED!%%a,%%b@"
   set "_DRIVE.LETTERS.FREE=!_DRIVE.LETTERS.FREE:%%a =!"
)
set _DRIVE.LETTERS.USED=%_DRIVE.LETTERS.USED:~0,-2%
set _DRIVE.LETTERS.USED=%_DRIVE.LETTERS.USED:,@=, @%
set _DRIVE.LETTERS

快速、灵活、高效。尽管有点复杂。

答案4

如果有人幸运的足以使用 Vista(就我而言,是 Vista Ultimate SP2 b6002)和格威米西米克这里给出的片段并不完全起作用,以下是我为使其起作用所做的事情。

为了格威米,如果您没有收到任何输出,请尝试将 DriveType 更改为 3。如果仍然有问题,请完全删除 -filter 选项并分析输出。

gwmi win32_LogicalDisk -filter DriveType=3

为了西米克,如果收到“无效的 GET 表达式”,则尝试将得到引号中的表达:

wmic logicaldisk get "caption,providername,drivetype,volumename"

相关内容