O Windows PowerShell trabalha com objetos. Ele permite que você crie variáveis - essencialmente, objetos nomeados – para preservar a saída para uso posterior. Se você está acostumado a trabalhar com variáveis em outros shells, lembre-se de que as variáveis do Windows PowerShell são objetos, e não texto.

As variáveis são sempre especificadas com o caractere inicial $, e podem incluir quaisquer caracteres alfanuméricos ou o sublinhado em seus nomes.

Criando uma variável

Você pode criar uma variável digitando um nome válido de variável:

PS> $loc
PS>

Esse procedimento não retorna nenhum resultado porque $loc não possui um valor. Você pode criar uma variável e atribuir um valor a ela na mesma etapa. O Windows PowerShell só cria a variável se ela não existir; caso contrário, ele atribuirá o valor especificado à variável existente. Para armazenar o local atual na variável $loc, digite:

$loc = Get-Location

Esse comando não exibirá nenhuma saída porque a saída foi enviada para $loc. No Windows PowerShell, a saída exibida é um efeito colateral, pois os dados que não são direcionados sempre são enviados para a tela. Se você digitar $loc, o seu local atual será exibido:

PS> $loc

Path
----
C:\temp

Você pode usar Get-Member para exibir informações sobre o conteúdo das variáveis. O envio de $loc para Get-Member pelo pipeline mostrará que ela é um objeto de PathInfo, assim como a saída de Get-Location:

PS> $loc | Get-Member -MemberType Property


   TypeName: System.Management.Automation.PathInfo

Name         MemberType Definition
----         ---------- ----------
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   System.String Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {...
ProviderPath Property   System.String ProviderPath {get;}

Manipulando variáveis

O Windows PowerShell oferece vários comandos para a manipulação de variáveis. Você pode ver uma lista completa de uma forma legível se digitar:

Get-Command -Noun Variable | Format-Table -Property Name,Definition -AutoSize -Wrap

Além das variáveis criadas por você em sua sessão atual do Windows PowerShell, existem muitas variáveis definidas pelo sistema. Você pode usar o cmdlet Remove-Variable para retirar todas as variáveis que não são controladas pelo Windows PowerShell. Digite o comando a seguir para limpar todas as variáveis:

Remove-Variable -Name * -Force -ErrorAction SilentlyContinue

Ele produzirá a solicitação de confirmação que pode ser vista a seguir.

Confirm
Are you sure you want to perform this action?
Performing operation "Remove Variable" on Target "Name: Error".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):A

Se você executar então o cmdlet Get-Variable, verá o restante das variáveis do Windows PowerShell. Uma vez que também há uma unidade de variáveis do Windows PowerShell, também é possível exibir todas as variáveis do Windows PowerShell digitando:

Get-ChildItem variable:

Usando variáveis do Cmd.exe

Embora o Windows PowerShell não seja o Cmd.exe, ele é executado em um ambiente de shell de comandos e pode usar as mesmas variáveis disponíveis em qualquer ambiente do Windows. Essas variáveis são exibidas em uma unidade chamada env:. Elas podem ser vistas se digitarmos:

Get-ChildItem env:

Embora os cmdlets de variável padrão não sejam projetados para funcionar com variáveis env:, você ainda pode usá-los especificando o prefixo env:. Por exemplo, para ver o diretório raiz do sistema operacional, você pode usar a variável de shell de comando %SystemRoot% no Windows PowerShell, digitando:

PS> $env:SystemRoot
C:\WINDOWS

Você também pode criar e modificar as variáveis de ambiente no Windows PowerShell. As variáveis de ambiente acessadas do Windows PowerShell atendem às regras normais para as variáveis de ambiente de qualquer outro lugar do Windows.




Sumário