Partilhar via


Set-Location

Define o local de trabalho atual como um local especificado.

Sintaxe

Path (Predefinição)

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

LiteralPath

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

Stack

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

Description

O cmdlet Set-Location define o local de trabalho como um local especificado. Esse local pode ser um diretório, um subdiretório, um local do Registro ou qualquer caminho de provedor.

O PowerShell 6.2 adicionou suporte para - e + como valores para o parâmetro Path. O PowerShell mantém um histórico dos últimos 20 locais que podem ser acessados com - e +. Essa lista é independente da pilha de localização que é acessada usando o parâmetro StackName.

Exemplos

Exemplo 1: Definir a localização atual

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

Este comando define o local atual como a raiz da unidade de HKLM:.

Exemplo 2: Definir o local atual e exibi-lo

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

PS Env:\>

Este comando define o local atual como a raiz da unidade de Env:. Ele usa o parâmetro PassThru para direcionar o PowerShell a retornar um objeto PathInfo que representa o local Env:\.

Exemplo 3: Defina o local para o local atual na unidade C:

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

O primeiro comando define o local como a raiz da unidade de HKLM: no provedor do Registro. O segundo comando define o local para o local atual da unidade de C: no provedor FileSystem. Quando o nome da unidade é especificado no formato <DriveName>: (sem barra invertida), o cmdlet define o local como o local atual no PSDrive. Para obter o local atual no PSDrive, use Get-Location -PSDrive <DriveName> comando.

Exemplo 4: Definir o local atual como uma pilha nomeada

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:\

O primeiro comando adiciona o local atual à pilha Caminhos. O segundo comando faz com que a pilha de localização Caminhos seja a pilha de localização atual. O terceiro comando exibe os locais na pilha de locais atual.

Os cmdlets *-Location usam a pilha de local atual, a menos que uma pilha de local diferente seja especificada no comando. Para obter informações sobre pilhas de localização, consulte o Notes.

Exemplo 5: Navegar no histórico de localização usando '+' ou '-'

PS C:\> Set-Location -Path $Env:SystemRoot
PS C:\Windows> Set-Location -Path Cert:\
PS Cert:\> Set-Location -Path HKLM:\
PS HKLM:\>

# Navigate back through the history using "-"
PS HKLM:\> Set-Location -Path -
PS Cert:\> Set-Location -Path -
PS C:\Windows>

# Navigate using the Set-Location alias "cd" and the implicit positional Path parameter
PS C:\Windows> cd -
PS C:\> cd +
PS C:\Windows> cd +
PS Cert:\>

Usar o alias, cd - ou cd + é uma maneira fácil de navegar pelo histórico de localização enquanto estiver no terminal. Para obter mais informações sobre como navegar com -/+, consulte o parâmetro Path.

Parâmetros

-LiteralPath

Especifica um caminho do local. O valor do parâmetro LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como um caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell para não interpretar quaisquer caracteres como sequências de escape.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:PSPath, LP

Conjuntos de parâmetros

LiteralPath
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-PassThru

Retorna um PathInfo objeto que representa o local. Por padrão, esse cmdlet não gera nenhuma saída.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Path

Especifique o caminho de um novo local de trabalho. Se nenhum caminho for fornecido, Set-Location padrão para o diretório base do usuário atual. Quando curingas são usados, o cmdlet escolhe o contêiner (diretório, chave do Registro, armazenamento de certificados) que corresponde ao padrão curinga. Se o padrão curinga corresponder a mais de um contêiner, o cmdlet retornará um erro.

O PowerShell mantém um histórico dos últimos 20 locais que você definiu. Se o valor do parâmetro Caminho for o caractere -, o novo local de trabalho será o local de trabalho anterior no histórico (se existir). Da mesma forma, se o valor for o caractere +, o novo local de trabalho será o próximo local de trabalho no histórico (se existir). Isso é semelhante ao uso de Pop-Location e Push-Location exceto que o histórico é uma lista, não uma pilha, e é implicitamente rastreado, não controlado manualmente. Não é possível visualizar a lista de histórico.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:True
NãoMostrar:False

Conjuntos de parâmetros

Path
Position:0
Obrigatório:False
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-StackName

Especifica um nome de pilha de local existente que esse cmdlet torna a pilha de local atual. Insira um nome de pilha de localização. Para indicar a pilha de local padrão sem nome, digite $null ou uma cadeia de caracteres vazia ("").

O uso desse parâmetro não altera o local atual. Ele altera apenas a pilha usada pelos cmdlets *-Location. Os cmdlets *-Location atuam na pilha atual, a menos que você use o parâmetro StackName para especificar uma pilha diferente. Para obter mais informações sobre pilhas de localização, consulte o Notes.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

Stack
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

String

Você pode canalizar uma cadeia de caracteres que contém um caminho, mas não um caminho literal, para esse cmdlet.

Saídas

None

Por padrão, esse cmdlet não retorna nenhuma saída.

PathInfo

Quando você usa o parâmetro PassThru com Path ou LiteralPath , esse cmdlet retorna um objeto PathInfo que representa o novo local.

PathInfoStack

Quando você usa o parâmetro PassThru com StackName , esse cmdlet retorna um PathInfoStack objeto que representa o novo contexto de pilha.

Notas

O PowerShell inclui os seguintes aliases para Set-Location:

  • Todas as plataformas:
    • cd
    • chdir
    • sl

O PowerShell oferece suporte a vários espaços de execução por processo. Cada ambiente de execução tem o seu próprio diretório atual. Isto não é o mesmo que [System.Environment]::CurrentDirectory. Esse comportamento pode ser um problema ao chamar APIs .NET ou executar aplicativos nativos sem fornecer caminhos de diretório explícitos.

Mesmo que os cmdlets de local tenham definido o diretório atual em todo o processo, você não pode depender dele porque outro espaço de execução pode alterá-lo a qualquer momento. Você deve usar os cmdlets location para executar operações baseadas em caminho usando o diretório de trabalho atual específico para o espaço de execução atual.

O cmdlet Set-Location foi projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, digite Get-PSProvider. Para obter mais informações, consulte about_Providers.

Uma pilha é uma lista de último a entrar, primeiro a sair, na qual apenas o item adicionado mais recentemente pode ser acessado. Você adiciona itens a uma pilha na ordem em que os usa e, em seguida, recupera-os para uso na ordem inversa. O PowerShell permite armazenar locais de provedores em pilhas de locais. O PowerShell cria uma pilha de local padrão sem nome. Você pode criar várias pilhas de locais nomeados. Se você não especificar um nome de pilha, o PowerShell usará a pilha de local atual. Por padrão, o local padrão sem nome é a pilha de local atual, mas você pode usar o cmdlet Set-Location para alterar a pilha de local atual.

Para gerenciar pilhas de localização, use os cmdlets *-Location, da seguinte maneira:

  • Para adicionar um local a uma pilha de locais, use o cmdlet Push-Location.

  • Para obter um local de uma pilha de locais, use o cmdlet Pop-Location.

  • Para exibir os locais na pilha de locais atual, use o parâmetro Stack do cmdlet Get-Location. Para exibir os locais em uma pilha de locais nomeados, use o parâmetro StackName de Get-Location.

  • Para criar uma nova pilha de locais, use o parâmetro StackName de Push-Location. Se você especificar uma pilha que não existe, Push-Location criará a pilha.

  • Para tornar uma pilha de localização a pilha de localização atual, use o parâmetro StackName de Set-Location.

A pilha de local padrão sem nome é totalmente acessível somente quando é a pilha de local atual. Se você tornar uma pilha de local nomeada a pilha de local atual, não poderá mais usar os cmdlets Push-Location ou Pop-Location para adicionar ou obter itens da pilha padrão ou usar o cmdlet Get-Location para exibir os locais na pilha sem nome. Para tornar a pilha sem nome a pilha atual, use o parâmetro StackName do cmdlet Set-Location com um valor de $null ou uma cadeia de caracteres vazia ("").