27Jul

Geek School: Learning PowerShell Variáveis, Entrada e Saída

click fraud protection

À 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".

instagram viewer

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!