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