Answers:
这在某种程度上取决于你所谓的“驱动器”。在PowerShell中,有一些驱动器代表您常用的本地或网络映射卷,以及包含其他对象(如别名,环境变量,函数,PowerShell变量,注册表配置单元等)的驱动器。
要在PowerShell中查看所有“驱动器”的列表,请使用:
Get-PSDrive
或者您可以使用内置别名:
gdr
(你看到的任何地方 Get-PSDrive
在下面,你可以替换 gdr
代替。)
要仅获取FileSystem驱动器,例如:本地或网络映射卷或介质托架,请使用:
Get-PSDrive -PSProvider FileSystem
要得到 只是 本地驱动器,或 只是 硬盘驱动器,我无法在输出的对象中找到合适的属性或方法 Get-PSDrive
过滤。稍后我发现了一点谷歌搜索 微软在TechNet上的Get-PSDrive文档 。那里,以及如何使用的细节 Get-PSDrive
,还列出了一些其他PowerShell可访问的驱动器枚举方法。我发现有用的是通过.NET Framework中的System.IO.DriveInfo类。
以下命令(可通过PowerShell执行)仅列出本地硬盘驱动器。
[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'}
如果要包含任何本地驱动器 - 而不仅仅是硬盘驱动器 - 请使用以下命令:
[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'}
如果您只想查看驱动器号,请将输出通过 Select-Object
, 像这样:
[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'} | Select-Object -Property Name
注意 Where-Object
和 Select-Object
也有内置的别名 ?
和 select, respectively. (
位置对象 is also usable as
where` - 这只是一个偏好问题。)System.IO.DriveInfo类也可以简化为IO.DriveInfo。所以,如果您愿意,最后一个命令可以像这样运行:
[IO.DriveInfo]::getdrives() | ? {$_.DriveType -ne 'Network} | select -Property Name
当然,还有很多你可以做的事情 Get-PSDrives
,以及可通过PowerShell访问的.NET类,以及许多其他可用的PowerShell快捷方式。我建议在TechNet和类似网站上阅读更多内容,并使用 Get-Help
和 Get-Command
cmdts以更好地熟悉环境。
使用以下命令 powershell
列出PC上的所有驱动器
gdr -PSProvider 'FileSystem'
要么
Get-PSDrive -PSProvider 'FileSystem'