在PowerShell中查看所有可访问的驱动器


3

我注意到cd \导航到我的驱动器的根目录。

但是我可以在计算机上访问其他驱动器。

PowerShell中是否有一个命令列出了我可以连接的所有驱动器?

Answers:


2

这在某种程度上取决于你所谓的“驱动器”。在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-ObjectSelect-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-HelpGet-Command cmdts以更好地熟悉环境。


0

使用以下命令 powershell 列出PC上的所有驱动器

gdr -PSProvider 'FileSystem'

要么

Get-PSDrive -PSProvider 'FileSystem'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.