命名卷 不同于 命名文件,路径和命名空间 。
下一个脚本显示了如何获取驱动器号的可能方法 目前已分配 一卷。用途 Win32_Volume类 :
该 Win32_Volume
class表示硬盘上的存储区域。
该类返回格式化,未格式化的本地卷,
已安装或离线。使用文件系统格式化卷,
如 FAT
要么 NTFS
,可能会分配一个驱动器号。
一个硬盘可以有多个卷,卷可以跨多个卷
物理磁盘。该 Win32_Volume
class不支持磁盘驱动器
管理。
@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion
call :getDriveLetter "\\?\Volume{5c729d19-70f7-11e5-830d-ac220b50824f}\"
call :getDriveLetter "\\?\Volume{090c044f-7ccc-11e4-824e-806e6f6e6963}\"
call :getDriveLetter "\\?\Volume{de60a588-fbe5-11e4-826f-806e6f6e6963}\"
:endlocal
ENDLOCAL
goto :eof
:getDriveLetter
set "_volumeID=%~1"
set "_DriveLetter="
for /F "tokens=1,* delims==" %%G in ('
wmic volume where "DeviceID='%_volumeID:\=\\%'" get DriveLetter /value
') do for /F %%g in ("%%~H") do set "_%%~G=%%~g"
call :doSomething
goto :eof
:doSomething
rem only output for debugging
if defined _DriveLetter (
echo %_volumeID% DriveLetter %_DriveLetter%
) else (
echo %_volumeID% DriveLetter unknown
)
goto :eof
产量 :
d:\temp> D:\bat\SU\1163592.bat
\\?\Volume{5c729d19-70f7-11e5-830d-ac220b50824f}\ DriveLetter F:
\\?\Volume{090c044f-7ccc-11e4-824e-806e6f6e6963}\ DriveLetter unknown
\\?\Volume{de60a588-fbe5-11e4-826f-806e6f6e6963}\ DriveLetter E: