[Powershell] O básico da linguagem e como declarar variaveis
Boa tarde a todos,
No meu último artigo eu descrevi o quanto o Powershell foi importante na minha vida para mudar a forma como eu tratava os meus problemas no trabalho, então nesse artigo eu gostaria de trazer o básico sobre a linguagem de uma forma resumida, e com alguns gatilhos para que todos entendam o mais rápido possível a capacidade do powershell, então vamos começar já com a mão na massa.
O que é importante você saber antes de começar a usar o powershell?
- O powershell é uma linguagem script utilizada para automação de tarefas;
- É uma linguagem auto tipada portanto na maioria dos seus scripts não será necessário declarar o tipo da variável (string, int, double...), porém é possível tipar caso necessário;
- Existem comandos que são chamados de CMDLETS e é comum no powershell que todo retorno de um Cmdlet retorne como objeto;
- Não é necessário saber fazer json querys ou xpaths, e outros tipos de queries para trabalhar com powershell, ele já traduz as estruturas de dados universais para que você se preocupe apenas com os objetos;
Onde se encontra o Powershell?
Ultimamente existem duas versões do Powershell homologadas pela Microsoft, a versão 5.1 Windows Powershell (Desktop) que já vem com o Windowns, e a versão 7 (Core) que é possível fazer o download através do repositório oficial (Powershell 7 Github).
Diferenças entre as duas
A Core é desenvolvida em código aberto a linguagem por trás é a .Net Core, tem sido desenvolvida em conjunto com a comunidade e possui integração melhor com APIs REST e as linguagens de estrutura JSON/XML, também é possível rodar a maior parte dos comandos da Core em outros sistemas operacionais como Unix, a desvantagens da Core é que é necessário instala-la por fora, alguns módulos da Desktop por serem desenvolvidos com o .Net Framework não possuem suporte para o Core e não há uma IDE integrada com a instalação como acontece na Desktop que possui o Powershell ISE, é necessário usar uma IDE a parte onde o VSCode se integra muito bem por isso eu fortemente recomendo a instalação do Core, porém para as operações que utilizaremos hoje a Desktop nos atenderá da mesma forma.
Windows Powershell e Windows Powershell ISE
O Windows Powershell é o prompt onde os comandos serão executados, porém para termos um ambiente de desenvolvimento de código o Powershell ISE (Integrated Script Envoriment) é o mais recomendado.
É possível abrir a ferramenta usando o iniciar e escrevendo Powershell ISE,
Uma tela parecida com a da imagem abrirá, onde eu circulei com minha destreza excepcional é uma seta que permite abrir a janela de scripts.
Para saber mais sobre a console do Powershell ISE clique aqui.
Agora que temos nossa janela de scripts aberta, podemos começar com o nosso Hello World.
Variáveis
Para declarar uma variável no powershell basta usar o $ seguido da palavra que você pretende utilizar como variável, em seguida é possível usar o = para que sua variável receba algum valor, strings normalmente usam "" (aspas duplas) e números não precisam de aspas.
$exemplo = "Hello World"
Para imprimir uma variável, basta escrevê-la em algum ponto do script onde ela já tenha valor armazenado.
$exemplo = "Hello World"
$exemplo
Para executar o seu script, aperte o botão Play verde no menu de execução ou aperte F5.
Acredito que tivemos a nossa primeira execução!
Note que o prompt do powershell continua ativo e com o histórico escrito, isso é porque o ISE nada mais é do que uma integração de script para o powershell, quem executa as instruções é o prompt, inclusive é possível imprimir o valor da variável $exemplo direto do prompt após executado o script.
Agora uma coisa que é importante notar, o Powershell atribuiu a nossa variável $exemplo
o tipo Object.String
, isso significa que a nossa variável se comporta como um objeto e também como uma string, em como outras linguagens de programação cada tipo de variável carrega funções próprias do seu tipo no powershell não é diferente, para ver essas funções basta voltar a tela de script e na linha do $exemplo digitar .
.
Automaticamente o ISE nos trás um intellisense que ajuda a completar a variável com alguma função, caso você feche o quadro do intellisense no ISE, basta digitar Ctrl+Espaço
para que ela reapareça.
$exemplo = "Hello World"
$exemplo.GetType()
Vocês podem apagar uma linha caso queiram, mas caso queiram comentar uma linha no powershell há duas maneiras.
Usando o #
é possível comentar uma linha inteira, e usando <# #>
é possível comentar um bloco de código.
Mas não é só isso, as variáveis podem ainda receber, numéricos, listas, objetos, lista de objetos, e retorno dos cmdlets, seguem alguns exemplos.
Numéricos
$numeros = 123 $numeros
Listas
$lista = 1, 2, 3, "quatro" $lista
(As listas podem ser de qualquer tipo ou misturadas)
Objetos
$pessoa = @{nome = "Felipe"; idade = 30} $pessoa.nome $pessoa
Lista de Objetos
$pessoa = @{nome = "Felipe"; idade = 30},@{nome = "Jose"; idade = 10} $pessoa
Cmdlets
$processos = Get-Process $processos
É importante lembrar que o Powershell reserva algumas variáveis que ele mesmo faz a gestão para uso próprio, então não é possível a utilização dessas variáveis (Variaveis).
Agora antes de terminarmos o artigo, o powershell possui uma inteligência que distribui o retorno de uma função split() em variáveis diferentes vamos ver?
$exemplo = "Hello World"
#$exemplo.GetType()
$a, $b = $exemplo.split(" ")
"$b $a"
Agora se você chegou até aqui, eu aposto que você já quer testar essa linguagem alem do que eu consigo te ensinar em um artigo simples, então, se você ficou animado curioso e já pretende sair usando o powershell alem do que eu pude ensinar aqui, segue a documentação da ferramenta que eu aposto que você vai amar:
O que é o PowerShell?
Agora se quiser esperar, pretendo no próximo artigo trazer exemplos de operações de lógica de programação com Powershell, dar exemplos de If's foreach's e tudo mais.
Até a próxima.