(除了手动键入
c:
d:
...
并查看哪些返回错误)
#1 楼
> wmic logicaldisk get caption
Caption
C:
D:
E:
如果最简单的话。不需要管理特权,返回的内容不会多于或少于所需的内容,等等。
如果要在脚本中使用它,请使用
for /f
选项将其包装在skip=1
中:for /f "skip=1 delims=" %%x in ('wmic logicaldisk get caption') do @echo.%%x
#2 楼
如果您在命令提示符下:diskpart
然后
list volume
示例输出:
Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 E DVD-ROM 0 B No Media Volume 1 System Rese NTFS Partition 100 MB Healthy System Volume 2 C System NTFS Partition 99 GB Healthy Boot Volume 3 F Data (local NTFS Partition 365 GB Healthy
,最后
exit
返回命令行。
评论
与net use命令相比,此命令仅列出本地物理驱动器。 (我认为。)请参阅technet上的diskpart和support.microsoft.com上的diskpart
–嘎嘎吉qua德
2010年5月11日12:33
diskpart需要管理权限。如果您只想要一个驱动器盘符列表,可能会需要很多...
–乔伊
2010年5月11日13:30
无法将“ diskpart”识别为内部或外部命令,
–卡尔·莫里森(Karl Morrison)
19-10-1在10:13
#3 楼
为了完整起见,还有另一种方法:fsutil fsinfo drives
它返回:
Drives: C:\ D:\ E:\ F:\
(这不是一个非常脚本友好的输出,但是对于人眼来说可能很有用)
一些参考。从win2k开始应该可以使用,但只能使用管理员帐户。
(感谢@CarlosCampderrós增强了答案)
评论
请注意,这仅在使用管理员帐户时有效
–卡洛斯·坎德罗斯(CarlosCampderrós)
15年4月16日在16:11
@CarlosCampderrós我认为这是不正确的。我可以以有限的用户身份运行fsutil,其结果比启动wmic系统快得多。在我只有运行Windows 10 v 1803的SSD的盒子上,wmic需要100-200ms,而fsutil需要约20ms。
–mrm
18-09-20在18:24
@mrm,某些Windows版本(或w10的发行版或内部版本)可能失去了此限制。我在wxp和w7pro上对此进行了测试,但在没有管理员帐户(AFAIR)的情况下失败了。
–saulius2
18-09-20在18:48
我第二次通过@ saulius2进行观察
–Fr0zenFyr
19年7月18日在4:46
#4 楼
如果您使用的是Powershell,则可以输入get-psdrive -psprovider filesystem
根据评论进行编辑,仅显示文件系统
评论
这还将返回其他已安装的非文件系统驱动器,例如Cert:,Alias:和Function:。此外,它将返回安装为PSDrive的其他文件系统目录(例如Home:对于我的%UserProfile%)。
–乔伊
2010年5月11日13:31
这是唯一对我有用的答案。所有其他解决方案似乎都需要管理员访问权限。 (至少在我非常过时的Windows XP系统上。)
– Ajedi32
15年7月6日在17:22
如果您不介意列出非文件系统驱动器,则可以只使用get-psdrive。
–拨浪鼓
20年12月4日,0:36
#5 楼
wmic logicaldisk get volumename,name
您可以通过这种方式获取(查询)多个属性。
这将为您提供分区/驱动器号以及格式化驱动器时给驱动器/分区的标签:
Name VolumeName
C: OS
D: Data
E: Programs
寻求帮助并列出所有权限选项:
wmic logicaldisk /?
然后
wmic logicaldisk get /?
评论
我试图获取CD / DVD ROM的驱动器号,而我能找到的最接近的东西是wmic logicaldisk获取名称,文件系统。普通驱动器将列为NTFS或FAT32,而CD / DVD ROM的文件系统将为空。
–akinuri
18年5月13日在13:51
更正:如果驱动器为空,则文件系统为空。如果没有,例如我现在有Windows 10光盘,它被列为UDF。
–akinuri
18年5月13日在13:58
#6 楼
使用内置的doskey函数创建一个别名,该别名将使用必需的属性运行wmic命令。doskey v=wmic logicaldisk get caption
这将创建一个别名“ v”,只要键入该别名即可运行给定命令并列出所有大写字母。
评论
哦,很好,不了解doskey(例如powershell的Set-Alias)
– BananaAcid
16年6月15日在22:17
答案被低估了,使用CMD多年了,却从未意识到别名是一件很重要的事情。
–普罗米修斯
19年4月15日在18:41
#7 楼
要从cli中查看可用的驱动器及其安装点,请使用mountvol
您还可以对某些命令(如chkdsk和诸如此类)使用未安装的卷GUID。
#8 楼
要批量访问驱动器,可以使用:@echo off
for /f "tokens=2 delims==" %%a in ('wmic logicalDisk get caption /format:List ^| find /I "caption"') do (
echo %%~a is your drive letter
echo Do what you like here
)
#9 楼
在Powershell中,您可以使用以下命令列出阵列内的驱动器:$drives=gdr -psp FileSystem|select -eXp root
此处选择
root
属性,该属性显示为C:\
,其中name
显示为C
。#10 楼
在VBscript中,我们可以使用:Dim fso,colDrives,objDrive
Set fso = CreateObject("Scripting.FileSystemObject")
Set colDrives = fso.Drives
For Each objDrive in colDrives
Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Next
评论
仅适用于具有管理员权限的用户
–卡洛斯·坎德罗斯(CarlosCampderrós)
15年4月16日在16:16
@CarlosCampderrós:从有限的用户帐户来说,对我来说效果很好。
–乔伊
15年4月16日在16:51
来自support.microsoft.com/zh-cn/kb/290216的引用“无论本地计算机上的WMI名称空间权限如何,Wmic.exe只能由本地系统管理员使用”,并且在我的计算机(带有WinXP的VM)上失败)
–卡洛斯·坎德罗斯(CarlosCampderrós)
15年4月17日在8:42
在Windows 8.1上的非管理员帐户下,它可以正常工作。请注意,KB文章仅适用于旧版操作系统。
–乔伊
15年4月17日在10:33
@Joey,为什么标题而不是wmic logicaldisk获得名称?
–起搏器
2015年4月23日在17:33