Set-Location
Присваивает текущему рабочему расположению указанное значение.
Синтаксис
Set-Location
[[-Path] <String>]
[-PassThru]
[-UseTransaction]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[-UseTransaction]
[<CommonParameters>]
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 , представляющего 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 не интерпретировать какие-либо символы как escape-последовательности.
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Возвращает объект PathInfo, представляющий расположение. По умолчанию этот командлет не создает выходные данные.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Укажите путь к новому рабочему расположению. Если путь не указан, Set-Location
по умолчанию используется домашний каталог текущего пользователя. Если используются дикие карта, командлет выбирает контейнер (каталог, раздел реестра, хранилище сертификатов), соответствующий шаблону wild карта. Если шаблон дикого карта соответствует нескольким контейнерам, командлет возвращает ошибку.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-StackName
Указывает существующее имя стека расположений, которое этот командлет делает текущий стек расположений. Введите имя стека папок. Чтобы указать неименованный стек расположения по умолчанию, введите $null
или пустую строку (""
).
Использование этого параметра не изменяет текущее расположение. Он изменяет только стек, используемый *-Location
командлетами. Командлеты *-Location
действуют в текущем стеке, если для указания другого стека не используется параметр StackName . Дополнительные сведения о стеках расположений см. в заметках.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseTransaction
Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в about_Transactions.
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Можно передать строку, содержащую путь, но не литеральный путь к этому командлету.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru с Path или LiteralPath этот командлет возвращает объект PathInfo , представляющий новое расположение.
При использовании параметра PassThru с StackName этот командлет возвращает объект PathInfoStack , представляющий новый контекст стека.
Примечания
Windows PowerShell включает следующие псевдонимы для Set-Location
:
cd
chdir
sl
PowerShell поддерживает несколько пространств выполнения для каждого процесса. Каждое пространство выполнения имеет собственный текущий каталог.
Это не то же самое, что [System.Environment]::CurrentDirectory
и . Это может быть проблема при вызове API .NET или выполнении собственных приложений, не предоставляя явные пути к каталогу.
Даже если командлеты расположения установили текущий каталог на уровне процесса, вы не можете зависеть от него, так как другое пространство выполнения может изменить его в любое время. Командлеты расположения следует использовать для выполнения операций на основе пути с помощью текущего рабочего каталога, относяющегося к текущему пространству выполнения.
Командлет Set-Location
предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PSProvider
. Дополнительные сведения см. в about_Providers.
Стек — это последний, первый список, в котором можно получить доступ только к последнему добавлению элемента. Элементы добавляются в стек в порядке их использования, а извлекаются в обратном порядке. PowerShell позволяет хранить расположения поставщиков в стеках расположений. PowerShell создает неименованный стек расположений по умолчанию. Можно создать несколько именованных стеков расположений. Если имя стека не указано, PowerShell использует текущий стек расположений. По умолчанию неназванное расположение по умолчанию — это текущий стек расположений, но можно использовать Set-Location
командлет для изменения текущего стека расположений.
Для управления стеками расположений используйте *-Location
командлеты следующим образом:
Чтобы добавить расположение в стек расположений, используйте
Push-Location
командлет.Чтобы получить расположение из стека расположений, используйте
Pop-Location
командлет.Чтобы отобразить расположения в текущем стеке расположений, используйте параметр Stack командлета
Get-Location
. Чтобы отобразить расположения в именованном стеке расположений, используйте параметрGet-Location
StackName .Чтобы создать стек расположений, используйте параметр
Push-Location
StackName . Если указать стек, который не существует,Push-Location
создайте стек.Чтобы сделать стек расположения текущим стеком расположений, используйте параметр
Set-Location
StackName .
Безымянный стек папок по умолчанию будет полностью доступен, только если он является текущим.
Если вы делаете стек именованных расположений текущего стека расположений, вы больше не можете использовать Push-Location
Pop-Location
командлеты для добавления или получения элементов из стека по умолчанию или использования Get-Location
командлета для отображения расположений в неназванном стеке. Чтобы сделать неназванный стек текущим стеком, используйте параметр StackName командлета со значением $null
или пустой строкой (""
).Set-Location
Связанные ссылки
PowerShell
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по