27Jul
À medida que nos afastamos de simplesmente executar comandos e mover para escrever scripts cheios, você precisará de um local temporário para armazenar dados.É aí que as variáveis entram.
Certifique-se de ler os artigos anteriores da série:
- Saiba como automatizar o Windows com o PowerShell
- Aprender a usar Cmdlets no PowerShell
- Aprender a usar objetos no PowerShell
- Learning Formatando, Filtrando e Comparando emPowerShell
- Aprenda a usar Remoting no PowerShell
- Usando o PowerShell para obter informações do computador
- Trabalhando com coleções no PowerShell
E fique atento 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 recipientes que possuem valores. No PowerShell, nós também temos variáveis e eles são realmente fáceis de usar. Veja como criar uma variável chamada "FirstName" e atribua o valor "Taylor".
$ FirstName = "Taylor"
A primeira coisa que a maioria das pessoas parece perguntar é por que colocamos um sinal de dólar na frente do nome das variáveis, e essa é realmente uma pergunta muito boa. Realmente, o sinal de dólar é apenas uma pequena dica para o shell que queremos acessar o conteúdo da variável( pense o que está dentro do recipiente) e não o próprio recipiente. No PowerShell, os nomes de variáveis não incluem o sinal de dólar, o que significa que, no exemplo acima, o nome das variáveis é realmente "FirstName".
No PowerShell, você pode ver todas as variáveis que você criou na variável PSDrive.
gci variável:
O que significa que você pode excluir uma variável do shell a qualquer momento também:
Remove-Item Variable: \ FirstName
As variáveis também não devem conter um único objeto;Você pode facilmente armazenar objetos múltiplos em uma variável. Por exemplo, se você quisesse armazenar uma lista de processos em execução em uma variável, você pode simplesmente atribuir a saída do Get-Process.
$ Proc = Get-Process
O truque para entender isso é lembrar que o lado direito do sinal igual é sempre avaliado primeiro. Isso significa que você pode ter um pipeline inteiro no lado direito, se desejar.
$ CPUHogs = Get-Process |Classifique CPU - Descriminando |selecione -Primeiro 3
A variável CPUHogs conterá os três processos em execução usando a maior parte da CPU.
Quando você tem uma variável que contém uma coleção de objetos, há algumas coisas a serem conscientes. Por exemplo, chamar um método na variável fará com que ele seja chamado em cada objeto na coleção.
$ CPUHogs. Kill()
Que mataria todos os três processos na coleção. Se você quiser acessar um único objeto na variável, você precisa tratá-lo como uma matriz.
$ CPUHogs [0]
Fazer isso lhe dará o primeiro objeto na coleção.
Não fique preso!
As variáveis no PowerShell são fracamente digeridas por padrão, o que significa que elas podem conter qualquer tipo de dados, isso parece atrapalhar o PowerShell o tempo todo!
$ a = 10
$ b = '20'
Então, temos duas variáveis, uma contém uma string eo outro é um inteiro. Então, o que acontece se você os adicionar? Depende de qual ordem você os adiciona.
$ a + $ b = 30
Enquanto
$ b + $ a = 2010
No primeiro exemplo, o primeiro operando é um número inteiro, $ a, então o PowerShell pensa quevocê está tentando fazer matemática e, portanto, tenta converter qualquer outro operando em números inteiros também. No entanto, no segundo exemplo, o primeiro operando é uma string, então o PowerShell apenas converte o resto dos operandos em strings e os concatena. Os scripts mais avançados impedem esse tipo de gotcha ao moldar a variável para o tipo que eles esperam.
[int] $ Number = 5
[int] $ Number = '5'
O anterior resultará na variável Number contendo um objeto inteiro com um valor de 5.
Entrada e Saída
Como o PowerShell é destinado a automatizar coisas, você vai querer evitar avisar os usuários sempre que possível. Com isso dito, haverá momentos em que você não pode evitá-lo, e por essas horas temos o cmdlet Read-Host. Usá-lo é realmente simples:
$ FirstName = Read-Host -Prompt 'Digite seu primeiro nome'
O que você inserir será salvo na variável.
A saída de escrita é tão fácil com o cmdlet Write-Output.
Write-Output "How-To Geek Rocks!"
Junte-se a nós, amanhã, onde amarreamos tudo o que aprendemos juntos!