Get-Location

Возвращает сведения о текущем рабочем расположении или стеке расположения.

Синтаксис

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

Описание

Командлет Get-Location получает объект, представляющий текущий каталог, так же как команду print working directory (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. Получение расположений с помощью стеков

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

Командлет Push-Location используется для изменения в трех разных расположениях. В третьем push-отправке используется другое имя стека. Параметр Get-Location Stack отображает содержимое стека по умолчанию. Параметр StackNameGet-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: расположения на диске.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

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

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Stack

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StackName

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

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

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UseTransaction

Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в about_transactions.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

None

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

Выходные данные

PathInfo

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

PathInfoStack

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

Примечания

Windows 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-LocationPop-Location командлеты для добавления или получения элементов из стека по умолчанию или использования этого командлета для отображения расположений в неназванном стеке. Чтобы сделать неназванный стек текущим стеком, используйте параметр StackName командлета со значением $null или пустой строкой ("").Set-Location