Я заметил, что cd \ перемещается в корень моего диска.
Но есть и другие диски, к которым я могу получить доступ на моем компьютере.
Есть ли в PowerShell команда, в которой перечислены все диски, к которым я могу подключиться?
Я заметил, что cd \ перемещается в корень моего диска.
Но есть и другие диски, к которым я могу получить доступ на моем компьютере.
Есть ли в PowerShell команда, в которой перечислены все диски, к которым я могу подключиться?
Это несколько зависит от того, что вы называете "диск". В PowerShell есть диски, которые представляют ваши обычные локальные или подключенные к сети тома, а также диски, которые содержат другие объекты, такие как псевдонимы, переменные среды, функции, переменные PowerShell, кусты реестра и многое другое.
Чтобы увидеть список всех "дисков" в PowerShell, используйте:
Get-PSDrive
Или вы можете использовать встроенный псевдоним:
gdr
(Везде, где вы видите Get-PSDrive
ниже, вы можете заменить вместо него gdr
.)
Чтобы получить только диски FileSystem, например: локальные или подключенные к сети тома или отсеки для носителей, используйте:
Get-PSDrive -PSProvider FileSystem
Чтобы получить только локальные диски или просто жесткие диски, я не смог найти подходящее свойство или метод в объектах, выводимых Get-PSDrive
для фильтрации. Немного погуглив позже, я нашел документацию Microsoft Get-PSDrive в TechNet. Там, наряду с подробной информацией о том, как использовать Get-PSDrive
, также перечислены несколько других доступных PowerShell методов перечисления дисков. Один из них я нашел полезным через Систему.Класс IO.DriveInfo в .NET Framework.
Команда ниже, исполняемая через 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 также может быть сокращен до просто IO.DriveInfo. Итак, эта последняя команда может быть выполнена следующим образом, если вам нравится:
[IO.DriveInfo]::getdrives() | ? {$_.DriveType -ne 'Network} | select -Property Name
Конечно, есть еще много чего вы можете сделать с Get-PSDrives
, классами .NET, доступными через PowerShell, а также многими другими доступными ярлыками PowerShell. Я предлагаю прочитать больше на TechNet и аналогичных сайтах, а также использовать командлеты Get-Help
и Get-Command
для лучшего знакомства с окружением.
Используйте следующую команду в powershell
чтобы вывести список всех дисков на вашем ПК.
gdr -PSProvider 'FileSystem'
или же
Get-PSDrive -PSProvider 'FileSystem'