3

Я заметил, что cd \ перемещается в корень моего диска.

Но есть и другие диски, к которым я могу получить доступ на моем компьютере.

Есть ли в PowerShell команда, в которой перечислены все диски, к которым я могу подключиться?

2 ответа2

2

Это несколько зависит от того, что вы называете "диск". В 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 для лучшего знакомства с окружением.

0

Используйте следующую команду в powershell чтобы вывести список всех дисков на вашем ПК.

gdr -PSProvider 'FileSystem'

или же

Get-PSDrive -PSProvider 'FileSystem'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .