Quando navega em sistemas de pastas no Windows Explorer, normalmente você tem um local de trabalho específico – isto é, a pasta aberta no momento. Os itens da pasta atual podem ser manipulados com facilidade, basta clicar neles. Para as interfaces de linha de comando como o Cmd.exe, quando você está na mesma pasta de um arquivo específico, pode acessá-lo especificando um nome relativamente curto, em vez de especificar todo o caminho até ele. O diretório atual é chamado de diretório de trabalho.
O Windows PowerShell utiliza o termo Location para se referir ao diretório de trabalho e implementa uma família de cmdlets para examinar e manipular seu local.
Obtendo o local atual (Get-Location)
Para determinar o caminho do diretório atual, digite o comando Get-Location:
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
Observação: | |
O cmdlet Get-Location é similar ao comando pwd do shell do BASH. O cmdlet Set-Location é similar ao comando cd do Cmd.exe. |
Definindo o local atual (Set-Location)
O comando Get-Location é usado com o comando Set-Location. O comando Set-Location permite que você especifique o local do diretório atual.
PS> Set-Location -Path C:\Windows
Depois de inserir o comando, você observará que não recebe qualquer resposta direta sobre o seu efeito. A maioria dos comandos do Windows PowerShell que executam uma ação produz pouca ou nenhuma saída porque ela nem sempre é útil. Para verificar se o diretório foi alterado com êxito após a inserção do comando Set-Location, inclua o parâmetro -PassThru ao digitar o comando Set-Location:
PS> Set-Location -Path C:\Windows -PassThru Path ---- C:\WINDOWS
O parâmetro -PassThru pode ser usado com vários comandos Set no Windows PowerShell para retornar informações sobre o resultado nos casos em que não haja uma saída padrão.
Você pode especificar caminhos relativos para o seu local atual, da mesma forma como o faria na maioria dos shells de comando do UNIX e do Windows. Na notação padrão de caminhos relativos, um ponto (.) representa a pasta atual e dois pontos (..) representam o diretório pai do local atual.
Por exemplo, se você estiver na pasta C:\Windows, um ponto (.) representa C:\Windows e dois pontos (..) representam C:. Você pode alterar o local atual para a raiz da unidade C: digitando:
PS> Set-Location -Path .. -PassThru
Path
----
C:\
A mesma técnica funciona nas unidades do Windows PowerShell que não são unidades de sistema de arquivos, como HKLM:. Você pode definir seu local para a chave HKLM\Software do Registro digitando:
PS> Set-Location -Path HKLM:\SOFTWARE -PassThru Path ---- HKLM:\SOFTWARE
Em seguida, você pode alterar o local do diretório para o diretório pai, que é a raiz da unidade HKLM: do Windows PowerShell, usando um caminho relativo:
PS> Set-Location -Path .. -PassThru Path ---- HKLM:\
Você pode digitar Set-Location ou usar qualquer um dos aliases internos do Windows PowerShell referentes a Set-Location (cd, chdir, sl). Por exemplo:
cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru
Salvando e recuperando locais recentes (Push-Location e Pop-Location)
Quando estiver alterando locais, será muito útil manter um registro do local onde você estava e ser capaz de retornar a ele. O cmdlet Push-Location do Windows PowerShell cria um histórico ordenado (uma "pilha") dos caminhos de diretórios que você acessou. É possível percorrer esse histórico usando o cmdlet complementar Pop-Location.
Por exemplo, o Windows PowerShell geralmente começa no diretório base do usuário.
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
Observação: | |
A palavra pilha tem um significado especial em muitas configurações de programação, inclusive no .NET Framework. Como uma pilha física de itens, o último item colocado na pilha será o primeiro item a ser retirado dela. A inclusão de um item na pilha é coloquialmente conhecido como "pushing". A exclusão de um item da pilha é coloquialmente conhecido como "popping". |
Para incluir o local atual na pilha e então mudar para a pasta Local Settings, digite:
PS> Push-Location -Path "Local Settings"
Você pode então incluir o local Local Settings na pilha e mudar para a pasta Temp ao digitar:
PS> Push-Location -Path Temp
Você pode verificar se mudou de diretório digitando o comando Get-Location:
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser\Local Settings\Temp
Em seguida, você poderá voltar ao diretório visitado por último digitando o comando Pop-Location e verificar a alteração digitando o comando Get-Location:
PS> Pop-Location PS> Get-Location Path ---- C:\Documents and Settings\me\Local Settings
Assim como faz com o cmdlet Set-Location, você pode incluir o parâmetro -PassThru quando digitar o cmdlet Pop-Location para exibir o diretório acessado:
PS> Pop-Location -PassThru Path ---- C:\Documents and Settings\PowerUser
Os cmdlets Location também podem ser usados com caminhos de rede. Caso você tenha um servidor chamado FS01 com um compartilhamento chamado Public, pode alterar seu local digitando
Set-Location \\FS01\Public
ou
Push-Location \\FS01\Public
Você pode usar os comandos Push-Location e Set-Location para alterar o local para qualquer unidade disponível. Por exemplo, se você tiver uma unidade de CD-ROM local com a letra de unidade D que contenha um CD de dados, poderá alterar o local para a unidade de CD digitando o comando Set-Location D:.
Se a unidade estiver vazia, você obterá a seguinte mensagem de erro:
PS> Set-Location D: Set-Location : Cannot find path 'D:\' because it does not exist.
Quando você está utilizando uma interface de linha de comando, não é conveniente usar o Windows Explorer para examinar as unidades físicas disponíveis. Além disso, o Windows Explorer não mostrará todas as unidades do Windows PowerShell. O Windows PowerShell oferece um conjunto de comandos para a manipulação das suas unidades. Falaremos sobre esses comandos a seguir.