Get-Location (Microsoft.PowerShell.Management)


Get-Location

Модуль:
Microsoft.PowerShell.Management

Получает информацию о текущем рабочем местоположении или стеке местоположений.

Синтаксис

Get-Location
   [-PSProvider <String[]>]
   [-PSDrive <String[]>]
   [<CommonParameters>]
Get-Location
   [-Stack]
   [-StackName <String[]>]
   [<CommonParameters>]

Описание

Командлет Get-Location получает объект, представляющий текущий каталог, подобно команде печати рабочего каталога (pwd).

Когда вы перемещаетесь между дисками PowerShell, PowerShell сохраняет ваше местоположение на каждом диске. Вы можете использовать этот командлет, чтобы определить свое местоположение на каждом диске.

Этот командлет можно использовать для получения текущего каталога во время выполнения и использования его в функциях и сценариях, например в функции, которая отображает текущий каталог в командной строке PowerShell.

Вы также можете использовать этот командлет для отображения местоположений в стеке местоположений. Дополнительную информацию см. в примечаниях и описаниях параметров Stack и StackName.

Примеры

Пример 1. Отображение вашего текущего местоположения на диске

Эта команда отображает ваше местоположение на текущем диске PowerShell.

PS C:\Windows> Get-Location

Path
----
C:\Windows

Например, если вы находитесь в каталоге Windows на диске C:, отображается путь к этому каталогу.

Пример 2. Отображение вашего текущего местоположения для разных дисков.

В этом примере показано использование Get-Location для отображения вашего текущего местоположения на разных дисках PowerShell. Set-Location используется для изменения местоположения на несколько разных путей на разных PSDrives.

PS C:\> Set-Location C:\Windows
PS C:\Windows> Set-Location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft> Set-Location "HKCU:\Control Panel\Input Method"
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive C

Path
----
C:\Windows

PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive HKLM

Path
----
HKLM:\Software\Microsoft

PS HKCU:\Control Panel\Input Method> Set-Location C:
PS C:\Windows> Get-Location -PSProvider Registry

Path
----
HKCU:\Control Panel\Input Method

Пример 3. Получение местоположений с помощью стеков

В этом примере показано, как использовать параметры Stack и StackName Get-Location для получения списка местоположений в текущем стеке местоположений и альтернативных стеках местоположений.

Командлет Push-Location используется для перехода в три разных местоположения. Третье нажатие использует другое имя стека. Параметр Stack Get-Location отображает содержимое стека по умолчанию. Параметр StackName Get-Location отображает содержимое стека с именем Stack2.

PS C:\> Push-Location C:\Windows
PS C:\Windows>Push-Location System32
PS C:\Windows\System32>Push-Location WindowsPowerShell -StackName Stack2
C:\Windows\System32\WindowsPowerShell>Get-Location -Stack

Path
----
C:\Windows
C:\

C:\Windows\System32\WindowsPowerShell>Get-Location -StackName Stack2

Path
----
C:\Windows\System32

Пример 4. Настройка приглашения PowerShell

В этом примере показано, как настроить приглашение PowerShell.

PS C:\>
function prompt { 'PowerShell: ' + (Get-Location) + '> '}
PowerShell: C:\>

Функция, определяющая приглашение, включает команду Get-Location, которая запускается всякий раз, когда приглашение появляется в консоли.

Формат приглашения PowerShell по умолчанию определяется специальной функцией с именем prompt. Вы можете изменить приглашение в консоли, создав новую функцию с именем prompt.

Чтобы просмотреть текущую функцию приглашения, введите следующую команду: Get-Content Function:\prompt

Параметры

-PSDrive

Получает текущее расположение на указанном диске PowerShell.

Например, если вы находитесь на диске Cert:, вы можете использовать этот параметр, чтобы найти свое текущее местоположение на диске C:.

Тип :

String[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-PSProvider

Получает текущее местоположение на диске, поддерживаемое указанным поставщиком PowerShell. Если указанный поставщик поддерживает более одного диска, этот командлет возвращает расположение на диске, к которому последний раз обращались.

Например, если вы находитесь на диске C:, вы можете использовать этот параметр, чтобы найти свое текущее местоположение на дисках поставщика Registry PowerShell.

Тип :

String[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Stack

Указывает, что этот командлет отображает местоположения, добавленные в текущий стек местоположений. Вы можете добавлять местоположения в стеки с помощью командлета Push-Location.

Чтобы отобразить местоположения в другом стеке местоположений, используйте параметр StackName. Информацию о стеках местоположений см. в Примечаниях.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-StackName

Указывает в виде строкового массива стеки именованных местоположений. Введите одно или несколько имен стека местоположений.

Чтобы отобразить местоположения в текущем стеке местоположений, используйте параметр Stack. Чтобы сделать стек местоположений текущим стеком местоположений, используйте командлет Set-Location.

Этот командлет не может отображать местоположения в безымянном стеке по умолчанию, если только это не текущий стек.

Тип :

String[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

Входы

Нет

Вы не можете передавать объекты в этот командлет.

Выходы

Информация о пути

По умолчанию этот командлет возвращает объект PathInfo.

PathInfoStack

При использовании параметров Stack или StackName этот командлет возвращает объект PathInfoStack.

Примечания

PowerShell включает следующие псевдонимы для Get-Location:

  • Все платформы:

      gl
      pwd

PowerShell поддерживает несколько пространств выполнения для каждого процесса. Каждое пространство выполнения имеет свой собственный текущий каталог. Это не то же самое, что [System.Environment]::CurrentDirectory. Такое поведение может быть проблемой при вызове API .NET или запуске собственных приложений без указания явных путей к каталогам. Командлет Get-Location возвращает текущий каталог текущего пространства выполнения PowerShell.

Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков в вашем сеансе, введите Get-PSProvider. Дополнительные сведения см. в разделе about_Providers.

Способы взаимодействия параметров PSProvider, PSDrive, Stack и StackName зависят от поставщика. Некоторые комбинации приведут к ошибкам, например, при указании диска и поставщика, который не предоставляет этот диск. Если параметры не указаны, этот командлет возвращает объект PathInfo для поставщика, который содержит текущее рабочее расположение.

Стек — это список «последним пришел — первым ушел», в котором доступен только последний добавленный элемент. Вы добавляете элементы в стек в том порядке, в котором вы их используете, а затем извлекаете их для использования в обратном порядке. PowerShell позволяет хранить местоположения поставщиков в стеках местоположений. PowerShell создает безымянный стек расположений по умолчанию, и вы можете создать несколько именованных стеков расположений. Если вы не укажете имя стека, PowerShell будет использовать текущий стек местоположений. По умолчанию безымянным местоположением по умолчанию является текущий стек местоположений, но вы можете использовать командлет Set-Location, чтобы изменить текущий стек местоположений.

Для управления стеками местоположений используйте командлеты PowerShell *-Location, как показано ниже.

  • Чтобы добавить местоположение в стек местоположений, используйте командлет Push-Location.

  • Чтобы получить местоположение из стека местоположений, используйте командлет Pop-Location.

  • Чтобы отобразить местоположения в текущем стеке местоположений, используйте параметр Stack командлета Get-Location. Чтобы отобразить местоположения в именованном стеке местоположений, используйте параметр StackName командлета Get-Location.

  • Чтобы создать новый стек расположений, используйте параметр StackName командлета Push-Location. Если вы укажете несуществующий стек, Push-Location создаст стек.

  • Чтобы сделать стек местоположений текущим стеком местоположений, используйте параметр StackName командлета Set-Location.

Безымянный стек местоположений по умолчанию полностью доступен только в том случае, если он является текущим стеком местоположений. Если вы сделаете именованный стек местоположений текущим стеком местоположений, вы больше не сможете использовать командлеты Push-Location или Pop-Location для добавления или получения элементов из стека по умолчанию или используйте этот командлет для отображения местоположений в безымянном стеке. Чтобы сделать безымянный стек текущим, используйте параметр StackName командлета Set-Location со значением $null или пустой строкой. ("").