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
или пустой строкой. (""
).