Push-Location
Добавляет текущее расположение в начало стека папок.
Синтаксис
Push-Location
[[-Path] <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Push-Location
[-LiteralPath <String>]
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Описание
Командлет Push-Location
добавляет ("отправляет") текущее расположение в стек расположений. Если указать путь, Push-Location
отправляет текущее расположение в стек расположений, а затем изменяет текущее расположение в расположение, указанное путем. Командлет можно использовать Pop-Location
для получения расположений из стека расположений.
По умолчанию Push-Location
командлет отправляет текущее расположение в текущий стек расположений, но можно использовать параметр StackName для указания альтернативного стека расположений. Если стек не существует, Push-Location
создает его.
Дополнительные сведения о стеках расположений см. в заметках.
Примеры
Пример 1
Этот пример отправляет текущее расположение в стек расположений по умолчанию, а затем изменяет расположение C:\Windows
на .
PS C:\> Push-Location C:\Windows
Пример 2
Этот пример отправляет текущее расположение в стек RegFunction и изменяет текущее расположение в HKLM:\Software\Policies
расположение.
PS C:\> Push-Location HKLM:\Software\Policies -StackName RegFunction
Командлеты location можно использовать в любом диске PowerShell (PSDrive).
Пример 3
Эта команда помещает текущее расположение в стек по умолчанию. Она не меняет расположение.
PS C:\> Push-Location
Пример 4. Создание и использование именованного стека
Эти команды показывают, как создавать и использовать именованные стеки папок.
PS C:\> Push-Location ~ -StackName Stack2
PS C:\Users\User01> Pop-Location -StackName Stack2
PS C:\>
Первая команда отправляет текущее расположение в новый стек с именем Stack2, а затем изменяет текущее расположение в домашний каталог, представленный в команде символом тильды (~
), который при использовании на дисках поставщика файловой системы эквивалентен $HOME
.
Если Stack2 еще не существует в сеансе, Push-Location
создает его. Вторая команда использует Pop-Location
командлет для всплывающих исходных расположений (C:\
) из стека Stack2. Без параметра Pop-Location
StackName отобразится расположение из неназванного стека по умолчанию.
Дополнительные сведения о стеках расположений см. в заметках.
Параметры
-LiteralPath
Указывает путь к новому расположению. В отличие от параметра Path, значение параметра LiteralPath используется точно так же, как и типизированный параметр. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Тип: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-PassThru
Передает объект, представляющий расположение, по конвейеру. По умолчанию этот командлет не создает выходные данные.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Добавляет текущее расположение в начало стека и заменяет это расположение на указанное данным путем. Введите путь к любому расположению, поставщик которого поддерживает данный командлет. Разрешено использовать подстановочные знаки. Имя параметра является необязательным.
Тип: | String |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-StackName
Указывает стек папок, в который будет добавлено текущее расположение. Введите имя стека папок.
Если стек не существует, Push-Location
создает его.
Без этого параметра Push-Location
добавляет расположение в текущий стек расположений. По умолчанию текущий стек расположений — это неназванный стек расположений по умолчанию, который создает PowerShell.
Чтобы сделать стек расположения текущим стеком расположений, используйте параметр StackName командлета Set-Location
. Дополнительные сведения о стеках расположений см. в заметках.
Примечание.
Push-Location
не может добавить расположение в неименованный стек по умолчанию, если он не является текущим стеком расположений.
Тип: | String |
Position: | Named |
Default value: | Default stack |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
Входные данные
Можно передать строку, содержащую путь (но не литеральный путь) к этому командлету.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект PathInfo , представляющий текущий путь после операции командлета.
Примечания
PowerShell включает следующие псевдонимы для Push-Location
:
- Все платформы:
pushd
PowerShell поддерживает несколько пространств выполнения для каждого процесса. Каждое пространство выполнения имеет собственный текущий каталог.
Это не то же самое, что [System.Environment]::CurrentDirectory
и . Это может быть проблема при вызове API .NET или выполнении собственных приложений, не предоставляя явные пути к каталогу.
Даже если командлеты расположения установили текущий каталог на уровне процесса, вы не можете зависеть от него, так как другое пространство выполнения может изменить его в любое время. Командлеты расположения следует использовать для выполнения операций на основе пути с помощью текущего рабочего каталога, относяющегося к текущему пространству выполнения.
Стек — это последний, первый список, в котором доступен только последний добавленный элемент. Элементы добавляются в стек в порядке их использования, а извлекаются в обратном порядке. PowerShell позволяет хранить расположения поставщиков в стеках расположений.
PowerShell создает неименованный стек расположений по умолчанию, и вы можете создать несколько именованных стеков расположений. Если имя стека не указано, PowerShell использует текущий стек расположений. По умолчанию неназванное расположение по умолчанию — это текущий стек расположений, но можно использовать Set-Location
командлет для изменения текущего стека расположений.
Для управления стеками расположений используйте командлеты расположения PowerShell, как показано ниже.
Чтобы добавить расположение в стек расположений, используйте
Push-Location
командлет.Чтобы получить расположение из стека расположений, используйте
Pop-Location
командлет.Чтобы отобразить расположения в текущем стеке расположений, используйте параметр Stack командлета
Get-Location
.Чтобы отобразить расположения в именованном стеке расположений, используйте параметр StackName командлета
Get-Location
.Чтобы создать стек расположений, используйте параметр StackName командлета
Push-Location
. Если указать стек, который не существует,Push-Location
создайте стек.Чтобы сделать стек расположения текущим стеком расположений, используйте параметр StackName командлета
Set-Location
.
Безымянный стек папок по умолчанию будет полностью доступен, только если он является текущим.
Если вы делаете стек именованных расположений текущего стека расположений, вы больше не можете использовать Push-Location
Pop-Location
командлеты для добавления или получения элементов из стека по умолчанию или использования Get-Location
командлета для отображения расположений в неназванном стеке. Чтобы сделать неназванный стек текущим стеком, используйте параметр StackName командлета со значением $null
или пустой строкой (""
).Set-Location
Вы также можете ссылаться на Push-Location
его встроенный псевдоним. pushd
Подробнее см. в статье about_Aliases.
Командлет Push-Location
предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PSProvider
. Дополнительные сведения см. в about_Providers.
Связанные ссылки
PowerShell