Como Usar o Comando Exit do PowerShell e seus Comandos Relacionados

Já se perguntou: “Qual é a melhor maneira de encerrar um script ou sair de um comando no PowerShell?” A sessão do PowerShell será encerrada com o comando de saída do PowerShell? Como retornar códigos de saída personalizados? Bem, você está com sorte!

Neste guia, você terá essas perguntas e muitas outras respondidas. Saiba todas as maneiras de sair de um script ou sessão do PowerShell.

Vamos nos preparar para encerrar algumas sessões e scripts do PowerShell!

Pré-requisitos

Para acompanhar, certifique-se de ter o Windows PowerShell ou o PowerShell Core instalado em sua máquina. Os exemplos deste artigo usarão o PowerShell 7.1.4.

Encerrando o Console e Scripts com o Comando de Saída do PowerShell

Vamos nos aprofundar neste tutorial e começar cobrindo a palavra-chave exit, uma das muitas palavras reservadas no PowerShell. Uma palavra reservada é um conjunto de caracteres embutidos no PowerShell que executa alguma ação. Para a palavra-chave exit, a ação é fazer com que o PowerShell encerre uma sessão do PowerShell.

Vamos praticar! Abra uma sessão do console do PowerShell, digite exit e pressione a tecla Enter. O console do PowerShell será fechado imediatamente.

Este palavra-chave também pode encerrar um script em vez da sessão do console. Incluindo a palavra-chave exit em um script e exit termina apenas o script e não a sessão inteira do console de onde o script é executado.

Copie e cole o código abaixo no bloco de notas e salve o script como test.ps1 no diretório C:\Temp. Execute o arquivo de script do PowerShell digitando o comando .\test.ps1, conforme mostrado na captura de tela abaixo. Observe que, em vez de o PowerShell fechar a sessão, ele encerra o script e retorna o controle ao prompt da sessão atual do PowerShell.

# test.ps1
Write-Host "Quick! Read this before the PowerShell session closes!!"
Start-Sleep -Seconds 2
Exit
The exit keyword stopped the script execution, but the console is still running

Recebendo e Fornecendo Feedback com Códigos de Saída

O comando exit é útil em situações em que você precisa que um script ou função execute algum código e saia. Mas você não obtém nenhuma indicação se o script foi executado com sucesso ou não.

Quando o PowerShell executa o último comando em um script, ele armazena o código de saída desse último comando na variável $LASTEXITCODE.

Há dois códigos de saída padrão:

O PowerShell não o restringe a 0 e 1 como códigos de saída. O PowerShell permite que você retorne códigos de saída personalizados, desde que sejam inteiros.

A faixa de valores para o código de saída depende da plataforma. No Windows, são permitidos quaisquer inteiros assinados de 32 bits. No Unix, apenas inteiros positivos de 8 bits são permitidos.

Para sair do PowerShell com um código de saída personalizado, você pode fornecer o código de saída como um argumento para a palavra-chave exit.

Copie e cole o código abaixo no arquivo test.ps1 existente e execute o script com o comando .\Test.ps1. Verifique o conteúdo da variável $LASTEXITCODE. Ao dizer ao PowerShell para sair com um código de saída 55, ele o fez, como você pode ver abaixo.

Function foo {
    Write-Output "This foo function will be shown"
    Exit 55 # < -- Usando código de saída personalizado
}

foo
Returning a custom exit code

Saindo de Loops Com Break

Haverá momentos em que o comportamento exit não é aceitável: como sair de uma função. Vamos verificar como a palavra-chave break ajuda.

A palavra-chave break faz com que o PowerShell pare um loop. Após um break, o código continua executando na próxima iteração.

As quebras são úteis em loops do PowerShell, como o foreach, while, do-while e declarações switch, pois permitem controlar onde o código será interrompido antes de sua conclusão.

Vamos praticar a saída de loops. Abaixo, você pode ver um trecho de código com um loop for. O loop for iteraria dez vezes se não fosse pelo break dentro dele. A palavra-chave break será acionada quando o iterador for igual a oito. Assim que o PowerShell encontra a palavra-chave break, ele interrompe o loop.

for($i=1; $i -le 10; $i++) {
	if($i -eq 8) { break }
	$i
}

É possível observar abaixo que o PowerShell interrompe o loop quando i é igual a 8. O código não avança para 9. Você conseguiu sair com sucesso de um loop for.

Breaking a for loop

Redirecionando a Execução do Código com Return

A palavra-chave return é ligeiramente diferente das palavras-chave anteriores, pois não sai ou interrompe comandos. Essa palavra-chave redireciona a execução do código. Ela retorna a execução para sua chamada, permitindo que você retorne valores. E não apenas inteiros, como exit, observe bem. Você pode retornar qualquer tipo! Esses comportamentos tornam a palavra-chave return mais versátil do que as palavras-chave anteriores.

Vamos ver isso em ação com um exemplo: construindo uma função para combinar palavras. Copie o código abaixo para sua sessão do PowerShell:

function WordPairing ($a,$b) {

	return "$a" + "$b" # <-- Combinando duas palavras em uma palavra

}

$output = WordPairing taco cat

Write-Output "$output is a strange pairing of words."

Observe como o valor que você está retornando da função é exibido na saída.

Redirecting code execution with the return keyword

Você redireciona a $output gerada pela função WordPairing de volta para onde $output é chamado.

Conclusão

Neste guia, você aprendeu diferentes maneiras de encerrar sessões e scripts do PowerShell. Cada método depende de uma palavra-chave específica. Cada palavra-chave tem um caso de uso particular. Quando usadas adequadamente, cada uma dessas palavras-chave oferece um controle enorme sobre o que seu script faz.

Agora que você conhece diferentes maneiras de encerrar suas sessões do PowerShell, como planeja melhorar seus scripts com esse conhecimento recém-adquirido?

Source:
https://adamtheautomator.com/powershell-exit/