Recherche de site Web

Déclaration de commutateur PowerShell [avec exemples]


Pour écrire un bon script d'automatisation PowerShell, vous devez savoir comment utiliser l'instruction Switch. Je vais tout expliquer sur l'instruction switch PowerShell et sa syntaxe et fournir quelques exemples utiles en temps réel.

À l'aide de l'instruction switch PowerShell, vous pouvez vérifier plusieurs conditions plus efficacement que en utilisant plusieurs instructions if. Les instructions Switch dans PowerShell peuvent gérer différents types de valeurs, telles que des chaînes, des nombres et même des expressions régulières.

Laissez-moi maintenant vous expliquer avec quelques exemples du début.

Instruction Switch dans PowerShell

Une instruction switch dans PowerShell évalue une variable ou une expression par rapport à une liste de valeurs possibles, en exécutant le bloc de code correspondant pour le cas correspondant. Ceci est similaire aux instructions switch dans d'autres langages de programmation comme C, Java et JavaScript. Par rapport à l’utilisation de plusieurs instructions if-else, cela fournit un moyen plus propre et plus lisible de gérer plusieurs conditions.

Syntaxe du boîtier de commutation PowerShell

La syntaxe de base d'une instruction switch dans PowerShell est la suivante :

switch ($variable) {
    'value1' {
        # Code to execute if $variable is 'value1'
    }
    'value2' {
        # Code to execute if $variable is 'value2'
    }
    default {
        # Code to execute if no match is found
    }
}

Voici un exemple simple de la façon dont vous pouvez utiliser le boîtier de commutation dans PowerShell.

$day = 'Monday'

switch ($day) {
    'Monday' {
        Write-Output "Start of the work week!"
    }
    'Friday' {
        Write-Output "End of the work week!"
    }
    default {
        Write-Output "Midweek days."
    }
}

Dans cet exemple, le résultat sera "Début de la semaine de travail !" car la valeur de $day est 'Lundi'.

J'ai exécuté le script PowerShell ci-dessus et vous pouvez voir le résultat exact dans la capture d'écran ci-dessous :

Lire l'instruction du commutateur PowerShell avec plusieurs conditions

Valeur par défaut du commutateur PowerShell

Le cas par défaut dans PowerShell Switch est utilisé lorsqu'aucun des cas spécifiés ne correspond à la valeur.

Le mot clé default dans une instruction switch spécifie le bloc de code qui doit être exécuté si aucun des cas spécifiés ne correspond à la valeur de l'expression.

Regardez l'exemple ci-dessous.

$color = 'Yellow'

switch ($color) {
    'Red' {
        Write-Output "Stop"
    }
    'Green' {
        Write-Output "Go"
    }
    'Blue' {
        Write-Output "Cool"
    }
    default {
        Write-Output "Unknown color"
    }
}

Dans ce cas, le résultat sera "Couleur inconnue" car 'Jaune' ne correspond à aucun des cas spécifiés.

Regardez la capture d'écran ci-dessous pour le résultat :

Lire le paramètre du commutateur PowerShell

Utiliser Break dans une instruction PowerShell Switch

Dans PowerShell, l'instruction break peut être utilisée dans un bloc switch pour quitter prématurément l'instruction switch. Ceci est utile lorsque vous souhaitez arrêter d'évaluer davantage les cas une fois qu'une correspondance est trouvée et que le code correspondant est exécuté.

Vous trouverez ci-dessous un exemple dans lequel j'ai utilisé l'instruction break dans une instruction switch dans PowerShell.

$number = 2

switch ($number) {
    1 {
        Write-Output "One"
        break
    }
    2 {
        Write-Output "Two"
        break
    }
    3 {
        Write-Output "Three"
        break
    }
    default {
        Write-Output "Other number"
    }
}

Dans cet exemple, le résultat sera "Two" et l'instruction switch se terminera immédiatement après.

Suivez maintenant la capture d'écran ci-dessous pour le résultat après avoir exécuté le script PowerShell ci-dessus à l'aide du code VS.

Lire les exemples de caractères génériques de commutateur PowerShell

Insensible à la casse du commutateur PowerShell

Par défaut, l'instruction switch dans PowerShell ne respecte pas la casse. Il ne fait pas de distinction entre les caractères majuscules et minuscules lors de la correspondance des valeurs. Cependant, vous pouvez le rendre sensible à la casse en utilisant le paramètre -CaseSensitive .

Voici un script PowerShell complet.

$fruit = 'APPLE'

switch ($fruit) {
    'apple' {
        Write-Output "This is an apple."
    }
    'banana' {
        Write-Output "This is a banana."
    }
    default {
        Write-Output "Unknown fruit."
    }
}

Dans cet exemple, le résultat sera "Ceci est une pomme." même si la casse ne correspond pas. Si vous souhaitez qu'elle soit sensible à la casse, vous pouvez modifier l'instruction switch comme suit :

$fruit = 'APPLE'
switch -CaseSensitive ($fruit) {
    'apple' {
        Write-Output "This is an apple."
    }
    'banana' {
        Write-Output "This is a banana."
    }
    default {
        Write-Output "Unknown fruit."
    }
}

Désormais, le résultat sera "Fruit inconnu." car 'APPLE' ne correspond pas à 'apple' dans une comparaison sensible à la casse.

Le résultat est dans la capture d'écran ci-dessous. Lorsque vous exécutez le script, il renverra le même résultat.

Lire le cas du commutateur PowerShell avec Regex

Instruction de commutateur imbriquée dans PowerShell

Voici un exemple d’utilisation des instructions switch imbriquées dans PowerShell.

Exemple :

$data = @(
    @{Name="John"; Age=28}
    @{Name="Jane"; Age=32}
)

foreach ($person in $data) {
    switch ($person.Name) {
        "John" {
            switch ($person.Age) {
                {$_ -lt 30} { "John is under 30" }
                default { "John is 30 or older" }
            }
        }
        "Jane" {
            switch ($person.Age) {
                {$_ -lt 35} { "Jane is under 35" }
                default { "Jane is 35 or older" }
            }
        }
        default { "Unknown person" }
    }
}

Exemples d'instructions de commutateur PowerShell

Maintenant, laissez-moi vous montrer quelques exemples pratiques d'utilisation de l'instruction switch dans PowerShell.

Exemple 1 : vérifier le type de fichier

Cet exemple explique comment utiliser l'instruction switch pour identifier le type d'un fichier en fonction de son extension.

Vous trouverez ci-dessous le script PowerShell complet.

$file = 'document.pdf'

switch -Regex ($file) {
    '\.txt$' {
        Write-Output "Text file"
    }
    '\.pdf$' {
        Write-Output "PDF document"
    }
    '\.jpg$' {
        Write-Output "JPEG image"
    }
    default {
        Write-Output "Unknown file type"
    }
}

Dans cet exemple, le résultat sera "Document PDF" car l'extension de fichier correspond à \.pdf$.

J'ai exécuté le script PowerShell ci-dessus et vous pouvez voir le résultat dans la capture d'écran ci-dessous :

Exemple 2 : attribution de rôle d'utilisateur

Cet exemple montre comment attribuer des rôles d'utilisateur en fonction des entrées. Regardez le script ci-dessous :

$userRole = 'Admin'

switch ($userRole) {
    'Admin' {
        Write-Output "Full access granted."
    }
    'Editor' {
        Write-Output "Edit access granted."
    }
    'Viewer' {
        Write-Output "Read-only access granted."
    }
    default {
        Write-Output "No access granted."
    }
}

Ici, le résultat sera "Accès complet accordé." car le $userRole est 'Admin'.

Exemple 3 : message du jour de la semaine

Cet exemple utilise l'instruction switch pour imprimer des messages en fonction du jour de la semaine.

Pour obtenir le résultat, vous pouvez exécuter le script PowerShell ci-dessous à l'aide du code VS.

$today = (Get-Date).DayOfWeek

switch ($today) {
    'Monday' {
        Write-Output "Start your week strong!"
    }
    'Wednesday' {
        Write-Output "Midweek hustle!"
    }
    'Friday' {
        Write-Output "Almost weekend!"
    }
    'Saturday' -or 'Sunday' {
        Write-Output "Enjoy your weekend!"
    }
    default {
        Write-Output "Keep going!"
    }
}

Puisque nous sommes aujourd’hui jeudi, le message « Continuer » s’affiche en sortie. Vous pouvez vérifier la capture d'écran ci-dessous :

Conclusion

D'après le didacticiel et les exemples ci-dessus, j'espère que vous savez maintenant comment utiliser l'instruction Switch dans PowerShell. J'ai également expliqué comment utiliser l'instruction break dans le cas du commutateur PowerShell.

N'hésitez pas à laisser un commentaire ci-dessous si vous avez encore des questions.

Articles connexes