Поделиться через


Get-Location

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

Синтаксис

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

Описание

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

При перемещении между дисками PowerShell сохраняет ваше расположение на каждом диске. Этот командлет можно использовать для поиска расположения на каждом диске.

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

Этот командлет также можно использовать для отображения расположений в стеке расположений. Дополнительные сведения см. в примечаниях и описаниях параметров Stack и StackName .

Примеры

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

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

PS C:\Windows> Get-Location

Path
----
C:\Windows

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

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

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

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 используется для преобразования в три разных расположения. В третьей отправке используется другое имя стека. Параметр Get-LocationStack для отображает содержимое стека по умолчанию. Параметр Get-LocationStackName для отображает содержимое стека с именем 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

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

None

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

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

PathInfo

По умолчанию этот командлет возвращает объект 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 или пустой строкой ("").