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
Например, если вы находитесь в каталоге Windows
C:
диска, отобразится путь к нему.
Пример 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-Location
Stack для отображает содержимое стека по умолчанию. Параметр Get-Location
StackName для отображает содержимое стека с именем 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 .
При использовании параметров 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
или пустой строкой (""
).