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


Set-Location

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

Синтаксис

Path (По умолчанию)

Set-Location
    [[-Path] <String>]
    [-PassThru]
    [-UseTransaction]
    [<CommonParameters>]

LiteralPath

Set-Location
    -LiteralPath <String>
    [-PassThru]
    [-UseTransaction]
    [<CommonParameters>]

Stack

Set-Location
    [-PassThru]
    [-StackName <String>]
    [-UseTransaction]
    [<CommonParameters>]

Описание

Командлет Set-Location задает рабочее расположение указанному расположению. Это расположение может быть каталогом, подкаталогом, расположением реестра или любым путем поставщика.

Вы также можете использовать параметр StackName для создания именованного стека расположений в текущем стеке расположений. Дополнительные сведения о стеках расположений см. в заметках.

Примеры

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

PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>

Эта команда задает текущее расположение корень диска HKLM:.

Пример 2. Установка текущего расположения и отображение этого расположения

PS C:\> Set-Location -Path "Env:\" -PassThru
Path
----
Env:\

PS Env:\>

Эта команда задает текущее расположение корень диска Env:. Он использует параметр PassThru для направления PowerShell для возврата объекта PathInfo PathInfo, представляющего расположение Env:\.

Пример 3. Задайте расположение в текущем расположении на диске C:

PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>

Первая команда задает расположение корневому каталогу диска HKLM: в поставщике реестра. Вторая команда задает расположение в текущем расположении диска C: в поставщике FileSystem. Если имя диска указано в форме <DriveName>: (без обратной косой черты), командлет задает расположение в текущем расположении в PSDrive. Чтобы получить текущее расположение в PSDrive, используйте команду Get-Location -PSDrive <DriveName>.

Пример 4. Установка текущего расположения в именованный стек

PS C:\> Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"
PS C:\Program Files\PowerShell\> Set-Location -StackName "Paths"
PS C:\Program Files\PowerShell\> Get-Location -Stack
Path
----
C:\

Первая команда добавляет текущее расположение в стек Paths. Вторая команда делает расположение paths стеком текущего стека расположений. Третья команда отображает расположения в текущем стеке расположений.

Командлеты *-Location используют текущий стек расположений, если в команде не указан другой стек расположений. Сведения о стеках расположений см. в заметках.

Параметры

-LiteralPath

Указывает путь к расположению. Значение параметра LiteralPath используется точно так же, как и тип. Ни один символ не интерпретируется как подстановочный знак. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки указывают PowerShell на то, что не следует интерпретировать какие-либо символы как управляющие последовательности.

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:PSPath

Наборы параметров

LiteralPath
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-PassThru

Возвращает объект PathInfo, представляющий расположение. По умолчанию этот командлет не создает выходные данные.

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

Укажите путь к новому рабочему расположению. Если путь не указан, Set-Location по умолчанию используется домашний каталог текущего пользователя. При использовании подстановочных знаков командлет выбирает контейнер (каталог, раздел реестра, хранилище сертификатов), соответствующий шаблону подстановочных знаков. Если шаблон подстановочного знака соответствует нескольким контейнерам, командлет возвращает ошибку.

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

Path
Position:0
Обязательно:False
Значение из конвейера:True
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-StackName

Указывает существующее имя стека расположений, которое этот командлет делает текущий стек расположений. Введите имя стека расположения. Чтобы указать неименованный стек расположений по умолчанию, введите $null или пустую строку ("").

Использование этого параметра не изменяет текущее расположение. Он изменяет только стек, используемый командлетами *-Location. Командлеты *-Location действуют в текущем стеке, если для указания другого стека не используется параметр StackName. Дополнительные сведения о стеках расположений см. в заметках.

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

Stack
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-UseTransaction

Включает команду в активную транзакцию. Этот параметр действителен только в том случае, если выполняется транзакция. Дополнительные сведения см. в about_Transactions.

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:usetx

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

String

Можно направить строку, содержащую путь, но не буквальный путь, к этому командлету.

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

None

По умолчанию этот командлет не возвращает выходные данные.

PathInfo

При использовании параметра PassThru с path или LiteralPathэтот командлет возвращает объект PathInfo PathInfo, представляющий новое расположение.

PathInfoStack

При использовании параметра PassThru с StackNameэтот командлет возвращает объект PathInfoStack, представляющий новый контекст стека.

Примечания

Windows PowerShell включает следующие псевдонимы для Set-Location:

  • cd
  • chdir
  • sl

PowerShell поддерживает несколько пространств выполнения для каждого процесса. Каждое рабочее пространство имеет собственный текущий каталог. Это не то же самое, что и [System.Environment]::CurrentDirectory. Это может быть проблема при вызове API .NET или выполнении собственных приложений, не предоставляя явные пути к каталогу.

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

Командлет Set-Location предназначен для работы с данными, предоставляемыми любым провайдером. Чтобы вывести список поставщиков, доступных в сеансе, введите Get-PSProvider. Дополнительные сведения см. в разделе о поставщиках.

Стек — это последний, первый список, в котором можно получить доступ только к последнему добавлению элемента. Вы добавляете элементы в стек в порядке их использования, а затем извлекаете их для использования в обратном порядке. PowerShell позволяет хранить расположения поставщиков в стеках расположений. PowerShell создает неименованный стек расположений по умолчанию. Можно создать несколько именованных стеков расположений. Если имя стека не указано, PowerShell использует текущий стек расположений. По умолчанию неназванное расположение по умолчанию — это текущий стек расположений, но можно использовать командлет Set-Location для изменения текущего стека расположений.

Чтобы управлять стеками расположений, используйте командлеты *-Location следующим образом:

  • Чтобы добавить расположение в стек расположений, используйте командлет Push-Location.

  • Чтобы получить расположение из стека расположений, используйте командлет Pop-Location.

  • Чтобы отобразить расположения в текущем стеке расположений, используйте параметр Stack командлета Get-Location. Чтобы отобразить расположения в именованном стеке расположений, используйте параметр StackNameGet-Location.

  • Чтобы создать стек расположений, используйте параметр StackName для . Если указать стек, который не существует, Push-Location создает стек.

  • Чтобы сделать стек расположения текущим стеком расположений, используйте параметр StackNameSet-Location.

Неименованный стек расположений по умолчанию полностью доступен только в том случае, если он является текущим стеком расположений. Если создать стек именованных расположений в текущем стеке расположений, вы больше не сможете использовать командлеты Push-Location или Pop-Location для добавления или получения элементов из стека по умолчанию или использования командлета Get-Location для отображения расположений в неназванном стеке. Чтобы сделать неименованный стек текущим стеком, используйте параметр StackName командлета Set-Location со значением $null или пустой строкой ("").