Geek School Learning PowerShell Variáveis, entrada e saída
À medida que nos afastamos da simples execução de comandos e passamos a escrever scripts completos, você precisará de um local temporário para armazenar dados. É aqui que as variáveis entram.
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 como 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 sobre o 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 boa pergunta. 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.
variável gci:
O que significa que você também pode excluir uma variável do shell a qualquer momento:
Variável Remove-Item: \ FirstName
As variáveis 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 | Ordenar CPU -Descendente | selecione -Primeiro 3
A variável CPUHogs agora conterá os três processos em execução usando a maior quantidade de CPU.
Quando você tem uma variável que contém uma coleção de objetos, há algumas coisas que você deve saber. Por exemplo, chamar um método na variável fará com que seja chamado em cada objeto da coleção.
$ CPUHogs.Kill ()
Qual 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]
Fazendo isso, você terá o primeiro objeto da coleção.
Não seja pego!
Variáveis no PowerShell são fracamente digitadas por padrão, o que significa que elas podem conter qualquer tipo de dado, isso parece atrair novos visitantes para o PowerShell o tempo todo!
$ a = 10
$ b = '20'
Então nós 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 simplesmente converte o restante dos operandos em cadeias de caracteres e concatena-os. Os scripts mais avançados previnem esse tipo de pegadinha ao converter a variável para o tipo que estão esperando.
[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, nesses momentos, temos o cmdlet Read-Host. Usá-lo é muito simples:
$ FirstName = Read-Host -Prompt 'Digite seu primeiro nome'
Tudo o que você digitar será salvo na variável.
Escrever saída é tão fácil com o cmdlet Write-Output.
Write-Output "How-To Geek Rocks!"
Junte-se a nós amanhã, onde amarramos tudo o que aprendemos juntos!