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 и $env:USERPROFILE.

Если Stack2 еще не существует в сеансе, Push-Location создает его. Вторая команда использует Pop-Location командлет для получения исходного расположения (C:\) из стека Stack2. Без параметра Pop-LocationStackName будет выводить расположение из неименованного стека по умолчанию.

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

Параметры

-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

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

String

Можно передать строку, содержащую путь (но не литеральный путь), в Push-Location.

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

None or System.Management.Automation.PathInfo

При использовании параметра PassThru создает объект System.Management.Automation.PathInfo, Push-Location представляющий расположение. В противном случае командлет не формирует никаких выходных данных.

Примечания

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.