![在 PowerShell 中查看所有可存取的驅動器](https://rvso.com/image/1416714/%E5%9C%A8%20PowerShell%20%E4%B8%AD%E6%9F%A5%E7%9C%8B%E6%89%80%E6%9C%89%E5%8F%AF%E5%AD%98%E5%8F%96%E7%9A%84%E9%A9%85%E5%8B%95%E5%99%A8.png)
我注意到 cd \ 導航到我的磁碟機的根目錄。
但我可以在電腦上存取其他驅動器。
PowerShell 中是否有命令列出我可以連接的所有磁碟機?
答案1
這在某種程度上取決於您所說的“驅動器”。在 PowerShell 中,有些磁碟機代表您常用的本機或網路對應卷,以及儲存其他物件(例如別名、環境變數、函數、PowerShell 變數、登錄機碼裝置等)的磁碟機。
若要在 PowerShell 中查看所有「磁碟機」的列表,請使用:
Get-PSDrive
或者您可以使用內建別名:
gdr
Get-PSDrive
(您可以在下面看到的任何地方進行替換gdr
。)
若要僅取得檔案系統驅動器,例如:本機或網路映射磁碟區或媒體托架,請使用:
Get-PSDrive -PSProvider FileSystem
要得到只是本機驅動器,或只是硬碟驅動器,我無法在物件輸出中找到合適的屬性或方法來Get-PSDrive
進行過濾。後來谷歌搜尋了一下,我發現TechNet 上的 Microsoft 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. (
Where-Object is also usable as
where` - 這實際上只是一個偏好問題。因此,如果您願意,最後一個命令可以這樣運行:
[IO.DriveInfo]::getdrives() | ? {$_.DriveType -ne 'Network} | select -Property Name
當然,您還可以使用 做很多其他事情Get-PSDrives
,並且可以透過 PowerShell 存取 .NET 類,以及許多其他可用的 PowerShell 捷徑。我建議在 TechNet 和類似網站上閱讀更多內容,並使用Get-Help
和Get-Command
cmdlet 來更好地熟悉環境。
答案2
使用以下命令powershell
列出 PC 上的所有驅動器
gdr -PSProvider 'FileSystem'
或者
Get-PSDrive -PSProvider 'FileSystem'