Recherche de site Web

PowerShell : différence entre Break, Return et Exit


Dans cet article de blog, je vais vous montrer la différence entre trois instructions PowerShell largement utilisées dans les scripts PowerShell. Je parle de Break, Return et Exit. J'utiliserai trois exemples pour expliquer. Allons-y.

Casser

L'instruction break fournit un moyen de quitter le bloc de contrôle actuel (boucle !), référence technique :

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_break?view=powershell-7

Qu’est-ce que cela signifie dans un cas précis ? Jetons un coup d'œil à un exemple. C'est ici.

function Test-Break {

    $i = 0
    Clear-Host
    while ($true)
    {
        if (($i+=1) -ge 3)
        {
            break # exits the loop and passes over to line 13 
        }
    Write-Output $i
    }
    Write-Output "Finished testing break." # is displayed - out of loop
}


Notez la ligne 9 ! Lorsque vous exécutez Test-Break, vous verrez que la boucle s'arrête à 2 ET que la ligne 13 est exécutée car l'instruction break uniquement quitte la boucle et passe au code en dehors de la boucle. Voici le résultat :

Eh bien, cela m'amène à la déclaration return.

Retour

Selon la référence Microsoft : Quitte la portée actuelle, qui peut être une fonction, un script ou un bloc de script.

Lien : https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_return?view=powershell-7

Bon, prenons un autre exemple.

function Test-Return {

    Clear-Host
    $i = 0

    while ($true)
    {
        if (($i += 1) -ge 3)
        {
            return # terminates entire function
        }
        Write-Output $i ### is not displayed if $i is 3 or higher
    }
    Write-Output "Finished testing return." # is NOT displayed - out of function
}

Dans cet exemple, return termine la fonction actuelle, ce qui signifie que les lignes 12 et 14 ne sont pas traitées et donc non affichées. Voici le résultat :

Cela m'amène à ma dernière déclaration : Quitter

Sortie

Quitter termine la session PowerShell en cours. Notez que cela ne se produira que si vous exécutez votre script dans powershell.exe, pwsh.exe (PowerShell 7) et pas dans Visual Studio Code.

Voici un exemple. La fonction s'arrête à la fin pendant 2 secondes, afin que vous puissiez voir où elle s'est arrêtée et termine PowerShell.

function Test-Exit {

    Clear-Host
    $i = 0

    while ($true)
    {
        if (($i += 1) -ge 3)
        {
            Start-Sleep -Seconds 3
            exit # exits the session (close PowerShell window and related process)
        }
        Write-Output $i
    }
}

Si vous exécutez Test-Exit, vous remarquerez que la boucle s'arrête à 2 puis après 2 secondes, la fenêtre PowerShell sera fermée.

Très bien, c'est tout pour aujourd'hui.
À la prochaine fois.

Articles connexes