Set-Location
Define o local de trabalho atual em um local especificado.
Sintaxe
Set-Location
[[-Path] <String>]
[-PassThru]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[<CommonParameters>]
Set-Location
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Description
O Set-Location
cmdlet 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 do 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 locais acessada usando o parâmetro StackName .
Exemplos
Exemplo 1: Definir o local atual
PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>
Esse comando define o local atual para a raiz da HKLM:
unidade.
Exemplo 2: Definir o local atual e exibir esse local
PS C:\> Set-Location -Path "Env:\" -PassThru
Path
----
Env:\
PS Env:\>
Esse comando define o local atual para a raiz da Env:
unidade. Ele usa o parâmetro PassThru para direcionar o PowerShell para retornar um objeto PathInfo que representa o Env:\
local.
Exemplo 3: Definir o local como 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 no provedor do HKLM:
Registro.
O segundo comando define o local como o local atual da C:
unidade no provedor FileSystem.
Quando o nome da unidade é especificado no formulário <DriveName>:
(sem barra invertida), o cmdlet define o local como o local atual no PSDrive.
Para obter a localização atual no PSDrive, use Get-Location -PSDrive <DriveName>
o 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 de caminhos. O segundo comando torna a pilha de localização Caminhos a pilha de localização atual. O terceiro comando exibe os locais na pilha de locais atual.
Os *-Location
cmdlets usam a pilha de locais atual, a menos que uma pilha de locais diferente seja especificada no comando. Para obter informações sobre pilhas de locais, consulte as Notas.
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 -
or 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 -
/+
o , 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 caractere curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. As aspas simples informam ao PowerShell para não interpretar nenhum caractere como sequências de escape.
Tipo: | String |
Aliases: | PSPath, LP |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-PassThru
Retorna um objeto PathInfo que representa o local. Por padrão, este cmdlet não gera saída.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Path
Especifique o caminho de um novo local de trabalho. Se nenhum caminho for fornecido, Set-Location
o padrão será o diretório inicial do usuário atual. Quando curingas são usados, o cmdlet escolhe o contêiner (diretório, chave do Registro, repositório 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 Pop-Location
e Push-Location
exceto que o histórico é uma lista, não uma pilha, e é rastreado implicitamente, não controlado manualmente. Não há como visualizar a lista de histórico.
Tipo: | String |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | True |
-StackName
Especifica um nome de pilha de locais existente que esse cmdlet torna a pilha de locais atual. Digite um nome de pilha de local. Para indicar a pilha de locais padrão sem nome, digite $null
ou uma string vazia (""
).
O uso desse parâmetro não altera a localização atual. Ele altera apenas a pilha usada pelos *-Location
cmdlets. Os *-Location
cmdlets 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 as Observações.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
Entradas
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.
Quando você usa o parâmetro PassThru com Path ou LiteralPath, esse cmdlet retorna um objeto PathInfo que representa o novo local.
Quando você usa o parâmetro PassThru com StackName, esse cmdlet retorna um objeto PathInfoStack que representa o novo contexto de pilha.
Observações
O PowerShell inclui os seguintes aliases para Set-Location
:
- Todas as plataformas:
cd
chdir
sl
O PowerShell dá suporte a vários runspaces por processo. Cada runspace tem seu próprio diretório atual.
Isso não é o mesmo que [System.Environment]::CurrentDirectory
. Esse comportamento pode ser um problema ao chamar APIs do .NET ou executar aplicativos nativos sem fornecer caminhos de diretório explícitos.
Mesmo que os cmdlets de localização tenham definido o diretório atual em todo o processo, você não pode depender dele porque outro runspace pode alterá-lo a qualquer momento. Você deve usar os cmdlets de localização para executar operações baseadas em caminho usando o diretório de trabalho atual específico para o runspace atual.
O Set-Location
cmdlet foi projetado para funcionar 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 as usará e as recupera para uso na ordem inversa. O PowerShell permite armazenar locais de provedor em pilhas de locais. O PowerShell cria uma pilha de locais 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 locais atual, mas você pode usar o Set-Location
cmdlet para alterar a pilha de locais atual.
Para gerenciar pilhas de locais, use os *-Location
cmdlets da seguinte maneira:
Para adicionar um local a uma pilha de locais, use o
Push-Location
cmdlet.Para obter um local de uma pilha de locais, use o
Pop-Location
cmdlet.Para exibir os locais na pilha de locais atual, use o
Get-Location
parâmetro Stack do cmdlet. Para exibir os locais em uma pilha de locais nomeados, use o parâmetro StackName deGet-Location
.Para criar uma nova pilha de locais, use o parâmetro StackName do
Push-Location
. Se você especificar uma pilha que não existe,Push-Location
o criará a pilha.Para tornar uma pilha de locais a pilha de locais atual, use o parâmetro StackName de
Set-Location
.
A pilha de locais padrão sem nome é totalmente acessível somente quando é a pilha de locais atual.
Se você tornar uma pilha de locais nomeada a pilha de locais atual, não poderá mais usar os Push-Location
cmdlets ou Pop-Location
para adicionar ou obter itens da pilha padrão ou usar o Get-Location
cmdlet para exibir os locais na pilha sem nome. Para tornar a pilha sem nome a pilha atual, use o parâmetro StackName do Set-Location
cmdlet com um valor de ou uma cadeia de $null
caracteres vazia (""
).