Não deixe de ler os artigos anteriores da série:
- Aprenda a automatizar o Windows com o PowerShell
- Aprendendo a usar cmdlets no PowerShell
- Aprendendo a usar objetos no PowerShell
- Aprendendo a formatar, filtrar e comparar no PowerShell
- Aprenda a usar o Remoting no PowerShell
- Usando o PowerShell para obter informações do computador
- Trabalhando com coleções no PowerShell
E fique ligado para o resto da série durante toda a semana.
Variáveis
A maioria das linguagens de programação permite o uso de variáveis, que são simplesmente contêineres que contêm valores. No PowerShell, também temos variáveis e elas são realmente fáceis de usar. Aqui está como criar uma variável chamada “FirstName” e dar a ela o valor “Taylor”.
$FirstName = “Taylor”
A primeira coisa que a maioria das pessoas parece perguntar é por que colocamos um cifrão na frente do nome das variáveis, e essa é realmente uma pergunta muito boa. Realmente, o cifrão é apenas uma pequena dica para o shell que queremos acessar o conteúdo da variável (pense o que está dentro do contêiner) e não o próprio contêiner. No PowerShell, os nomes das variáveis não incluem o cifrão, o que significa que, no exemplo acima, o nome das variáveis é, na verdade, “FirstName”.
No PowerShell, você pode ver todas as variáveis que você criou na variável PSDrive.
gci variable:
Remove-Item Variable:FirstName
As variáveis também não precisam conter um único objeto. você pode facilmente armazenar vários objetos em uma variável. Por exemplo, se você quiser armazenar uma lista de processos em execução em uma variável, basta atribuir a saída de Get-Process.
$Proc = Get-Process
O truque para entender isso é lembrar que o lado direito do sinal de igual é sempre avaliado primeiro. Isso significa que você pode ter um pipeline inteiro no lado direito, se quiser.
$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3
A variável CPUHogs agora conterá os três processos em execução usando a maior parte da CPU.
$CPUHogs.Kill()
Qual mataria todos os três processos na coleção. Se você quiser acessar um único objeto na variável, precisará tratá-lo como uma matriz.
$CPUHogs[0]
Fazendo isso, você terá o primeiro objeto na coleção.
Não seja pego!
Variáveis no PowerShell são fracamente digitadas por padrão, ou seja, elas podem conter qualquer tipo de dado, isso parece atrair novos visitantes para o PowerShell o tempo todo!
$a = 10
$b = ‘20’
Portanto, temos duas variáveis, uma contém uma string e a outra é um inteiro. Então, o que acontece se você adicioná-los? Na verdade, depende de qual ordem você os adiciona.
$a + $b = 30
Enquanto
$b + $a = 2010
No primeiro exemplo, o primeiro operando é um inteiro, $ a, então o PowerShell acha que você está tentando fazer matemática e, portanto, tenta converter outros operandos em números inteiros também. No entanto, no segundo exemplo, o primeiro operando é uma cadeia de caracteres, portanto, o PowerShell apenas converte o restante dos operandos em cadeias de caracteres e concatena-os. Os scripters mais avançados evitam esse tipo de pegadinha ao converter a variável para o tipo esperado.
[int]$Number = 5 [int]$Number = ‘5’
O acima irá resultar na variável Number contendo um objeto inteiro com um valor de 5.
Entrada e saída
Como o PowerShell se destina a automatizar as coisas, você vai querer evitar que os usuários solicitem informações sempre que possível. Com isso dito, haverá momentos em que você não poderá evitá-lo e, nessas vezes, temos o cmdlet Read-Host. Usá-lo é muito simples:
$FirstName = Read-Host –Prompt ‘Enter your first name’
Write-Output “How-To Geek Rocks!”