7 Exemplos de Uso do PowerShell

🚀 Um estilo cheat sheet para informações rápidas.


7 Exemplos de Uso do PowerShell


PowerShell é um shell de linha de comando baseado em tarefas e linguagem de script desenvolvido no .NET. Inicialmente, apenas um componente do Windows.

Ele foi escrito com C# e seu código fonte está disponível no GitHub


Instalação

O PowerShell já está disponível para Windows 10 e 11, logo, não precisa instalar nada. Mas, se você estiver em outro sistema operacional, como Ubuntu, por exemplo, você pode usar o snap:

sudo snap install powershell --classic

Após instalado, basta confirmar a instalação verificando a versão, ex.:

pwsh --version
PowerShell 7.5.0

Abaixo alguns exemplos de uso.


01. Criando um Hello, World!

Crie um arquivo com extensão .ps1, exemplo: main.ps1 e insira o conteúdo abaixo:

# Programa básico com PowerShell
Write-Host 'Hello, World!'

Comentários podem ser feitos usando o tralha: #

Salve e rode com o comando:

pwsh main.ps1

A saída deverá ser: Hello, World!.


02. Fazer download de arquivo da Web:

Exemplo download do arquivo 81by.txt e salvar com o nome: logo-ps.png.

Sempre é necessário direcionar para um arquivo local com -OutFile.

Invoke-WebRequest -Uri "http://0x0.st/81by.txt" -OutFile "logo-ps.png"

03. Criar e utilizar variáveis e concatenar:

Precisa do cifrão estilo PHP e Perl.

$url  = "http://0x0.st/81by.txt"
$file = "logo-ps.png"
Write-Host "A url é: " + $url + " e o arquivo: " $file

O operador de concatenação: +(mais) é opcional, poderia ser também:

Write-Host "A url é: " $url " e o arquivo: " $file

04. Utilizando if else

Verificar se o arquivo foi salvo com sucesso:

$url  = "http://0x0.st/81by.txt"
$file = "logo-ps.png"

Write-Host "A url é: " + $url + " e o arquivo: " $file
Invoke-WebRequest -Uri $url -OutFile $file

if(Test-Path $file 2>$null && (Get-Content $file 2>$null)){
    Write-Host "Arquivo foi baixado com sucesso!"
}else{
    Write-Host "Falha ao baixar o arquivo ou o arquivo está vazio."
}

Note também o uso de:

  • && operador lógico
  • 2>$url similar ao 2>/dev/null
  • Além das declarações: Test-Path e Get-Content

05. Criando funções

Adicionando funções para otimizar rotinas. Tudo que fizemos anteriormente, mas agora dentro de uma função que podemos mudar a URL e o nome do arquivo sempre precisar reescrever sempre que quisermos reutilizar para outros fins.

$url  = "http://0x0.st/81by.txt"
$file = "logo-ps.png"

Function SaveFile {
  param($url, $file)
    Write-Host "A url é: " + $url + " e o arquivo: " $file
    Invoke-WebRequest -Uri $url -OutFile $file

    if(Test-Path $file 2>$null && (Get-Content $file 2>$null)){
      Write-Host "Arquivo foi baixado com sucesso!"
    }else{
      Write-Host "Falha ao baixar o arquivo ou o arquivo está vazio."
    }
}

SaveFile $url $file

Alguns detalhes nesse código:

  • Os parâmetros de função precisam usar a função: param() que está dentro do bloco de chaves
  • Nesse caso específico precisamos chamar estilo Bash parâmetros lado-a-lado do nome da função: SaveFile $1 $2 e não: SaveFile($1, $2), mas em alguns outros casos, como inteiros podemos usar estilo a maioria das linguagens de programação, exemplo:
Function IncNumber {
  param($x)
    ++$x
  Write-Host $x
}

IncNumber(2) # 3

Nesse outro exemplo, note também o uso do operador ++ do lado esquerdo para incrementar.


06. Obtendo conteúdo de um arquivo

Nesse caso, vamos ver o conteúdo do próprio arquivo: main.ps1, estilo comando cat:

Comentamos a chamada da função: SaveFile e adicionamos mais uma linha com:

Get-Content "main.ps1"

A saída será:

$url  = "http://0x0.st/81by.txt"
$file = "logo-ps.png"

Function SaveFile {
  param($url, $file)
    Write-Host "A url é: " + $url + " e o arquivo: " $file
    Invoke-WebRequest -Uri $url -OutFile $file

    if(Test-Path $file 2>$null && (Get-Content $file 2>$null)){
      Write-Host "Arquivo foi baixado com sucesso!"
    }else{
      Write-Host "Falha ao baixar o arquivo ou o arquivo está vazio."
    }
}

#SaveFile $url $file
Get-Content "main.ps1"

07. Interagindo com o usuário

Pedindo confirmação para ver se ele realmente deseja ver o arquivo:

$resposta = Read-Host "Você deseja visualizar o arquivo? (sim/não)"

if ($resposta -eq "sim" -or $resposta -eq "s") {
  Get-Content "main.ps1"
} else {
  Write-Host "Você escolheu não exibir o arquivo."
}

Note também o uso do operador -or(equivalente a ||) para se aresposta for sim ou s.


Para mais informações baixe esse PDF e acesse os links abaixo:


powershell windows csharp


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!