Comment utiliser des instructions PowerShell pour ajouter une logique conditionnelle à vos scripts

PowerShell est une langue de script puissante pour de nombreuses raisons. Une de ces raisons est son support pour la logique conditionnelle, ce qui peut vous aider à optimiser vos scripts PowerShell pour en faire des outils encore plus efficaces et efficaces. Dans cet article, je vais vous apprendre comment utiliser If, Else et Elseif pour la logique conditionnelle et expliquer comment cela peut vous aider en tant que scripteur de scripts PowerShell.

Comment utiliser l’instruction If de PowerShell

Les If de PowerShell sont utilisés pour exécuter conditionnellement du code. Ils vous permettent de tester une condition et d’exécuter différents blocs de code en fonction du fait que la condition est vraie ou fausse.

Commençons par deux exemples montrant comment utiliser les instructions If de PowerShell.

Exemple 1 : Vérification si un nombre est positif ou négatif

Dans l’exemple suivant, nous avons une variable, $number, définie à 10. L’instruction If vérifie si la valeur de $number est supérieure à 0 en utilisant l’opérateur -gt.

  • Lorsque la condition est vraie, elle exécute le bloc de code dans les premières parenthèses, qui dans ce cas affiche « Le nombre est positif. »
  • Lorsque la condition est fausse, elle passe au bloc Elseif et vérifie si le nombre est inférieur à 0 en utilisant l’opérateur -lt.
  • Si la condition est vraie, elle exécute le code dans le deuxième ensemble de crochets, affichant « Le nombre est négatif. »
  • Si les deux conditions sont fausses, elle exécute le code dans le bloc else, affichant « Le nombre est zéro. »
$number = 10

if ($number -gt 0) {
    Write-Host “The number is positive.”
} elseif ($number -lt 0) {
    Write-Host “The number is negative.”
} else {
    Write-Host “The number is zero.”
}
Checking if a number is positive or negative (Image credit: Petri/Bill Kindle)

Exemple 2 : Vérification de l’existence d’un fichier

Dans cet exemple suivant, nous avons une variable, $file, définie comme chemin vers un fichier. L’instruction If utilise le cmdlet Test-Path pour vérifier l’existence du fichier.

  • Si la condition est évaluée comme vraie, c’est-à-dire que le fichier existe, elle exécute le code dans le premier ensemble de crochets, affichant « Le fichier existe. »
  • Si la condition est fausse, elle exécute le code dans le bloc else, affichant « Le fichier n’existe pas. »
$file = “C:\path\to\file.txt”

if (Test-Path $file) {
    Write-Host “The file exists.”
} else {
    Write-Host “The file does not exist.”
}
Checking if a file exists (Image credit: Petri/Bill Kindle)

Ces deux exemples étaient simples de comment les instructions conditionnelles fonctionnent dans PowerShell. Passons à l’instruction Else.

Comment utiliser l’instruction Else de PowerShell avec l’instruction If

Dans PowerShell, vous pouvez utiliser l’instruction Else avec l’instruction If pour créer une logique conditionnelle. Elle vous permet de spécifier un bloc de code à exécuter lorsque la condition de l’instruction If est fausse.

Permettez-moi de vous donner deux exemples montrant comment utiliser des instructions Else dans PowerShell.

Exemple 3 : Vérification si une variable est supérieure à un nombre

Dans cet exemple, nous effectuons plusieurs vérifications :

  • L’instruction If vérifie si la variable $number est supérieure à 10.
  • Si c’est le cas, le message « Le nombre est supérieur à 10 » est affiché.
  • Si elle ne remplit pas la condition, le bloc Else s’exécute et le message « Le nombre n’est pas supérieur à 10 » est affiché.
$number = 5

if ($number -gt 10) {
    Write-Host “The number is greater than 10.”
}
else {
    Write-Host “The number is not greater than 10.”
}
Checking if a variable is greater than a number (Image credit: Petri/Bill Kindle)

Exemple 4 : Comparaison de la valeur de une variable avec une chaîne de caractères

Dans cet exemple, l’instruction If compare la valeur de la variable $user à la chaîne de caractères « John ».

  • Si elles sont égales, le message « Bienvenue, John ! » est affiché.
  • Si elle ne remplit pas la condition, c’est-à-dire que la valeur de $user n’est pas « John », le bloc Else est exécuté et le message « Accès refusé. Vous n’êtes pas John. » est affiché.
$user = “John”

if ($user -eq “John”) {
    Write-Host “Welcome, John!”
}
else {
    Write-Host “Access denied. You are not John.”
}
Comparing the value of a variable with a string (Image credit: Petri/Bill Kindle)

La différence entre une instruction If et une instruction Else réside dans les conditions qu’elles évaluent et les actions qui suivent leur exécution.

  • Une instruction If vérifie une condition et exécute du code si la condition est vraie.
  • Une instruction Else fournit un bloc de code alternatif à exécuter lorsque la condition de l’instruction If est fausse. Si la condition de l’instruction If est vraie, le bloc Else ne s’exécute pas.

En résumé, l’instruction If permet de exécuter du code en fonction d’une condition spécifique. L’instruction Else offre une option de secours lorsque la condition est fausse. En utilisant ces instructions ensemble, vous pouvez créer une logique plus souple et robuste dans vos scripts PowerShell.

Comment utiliser les instructions ElseIf dans PowerShell

ElseIf est utilisé pour créer une condition qui vérifie si l’instruction If précédente ou toute instruction ElseIf précédente évalue la valeur ‘fausse’. Les instructions ElseIf permettent de tester plusieurs conditions et d’exécuter différents blocs de code en fonction de l’évaluation de ces conditions. L’instruction ElseIf est particulièrement utile lorsque vous avez plus de deux issues possibles.

Voici deux exemples montrant l’utilisation d’instructions ElseIf dans PowerShell.

Exemple 5 : Vérification de la plage d’un nombre

Dans cet exemple, le code vérifie la valeur de la variable $number et exécute différents blocs de code en fonction de sa plage.

  • Si le nombre est inférieur à 10, la première condition est vraie et le message correspondant est affiché.
  • Sinon, nous vérifions la condition suivante en utilisant l’instruction ElseIf. Lorsque le nombre est compris entre 10 et 19 (inclus), la deuxième condition est vraie et le message correspondant est affiché.
  • Si aucune des conditions précédentes n’est vraie, le bloc Else s’exécute, affichant un message indiquant que le nombre est supérieur ou égal à 20.
$number = 25

if ($number -lt 10) {
    Write-Host “The number is less than 10.”
}
elseif ($number -ge 10 -and $number -lt 20) {
    Write-Host “The number is between 10 and 19.”
}
else {
    Write-Host “The number is 20 or greater.”
}
Checking a number’s range (Image credit: Petri/Bill Kindle)

Exemple 6 : Vérification de la longueur d’une chaîne

Dans cet exemple, le code examine la longueur de la chaîne $name et détermine sa catégorie en fonction de sa longueur.

  • Lorsque le nom comporte plus de 10 caractères, la première condition est vraie et le message correspondant est affiché.
  • Lorsque la première condition est fausse, nous vérifions la condition suivante en utilisant l’instruction ElseIf. Si le nom comporte plus de 5 caractères (mais moins de 10), la deuxième condition est vraie et le message correspondant est affiché.
  • Si aucune des conditions précédentes n’est vraie, le bloc Else s’exécute et affiche un message indiquant que le nom comporte 5 caractères ou moins.
$name = “John”

if ($name.Length -gt 10) {
    Write-Host “The name is longer than 10 characters.”
}
elseif ($name.Length -gt 5) {
    Write-Host “The name is between 6 and 10 characters.”
}
else {
    Write-Host “The name is 5 characters or shorter.”
}
Checking a string’s length (Image credit: Petri/Bill Kindle)

En général, les instructions ElseIf en PowerShell spécifient les conditions à vérifier lorsque les instructions précédentes évaluent à faux. Elles fournissent un moyen de gérer plusieurs conditions et d’exécuter différents blocs de code en conséquence.

Comment utiliser des expressions AND/OR avec des instructions IF dans PowerShell

Dans PowerShell, les opérateurs logiques « ET » et « OU » sont utilisés pour combiner plusieurs conditions dans des instructions conditionnelles pour contrôler le flux de votre script. Ils peuvent être utilisés avec des instructions IF pour évaluer plusieurs conditions en même temps :

Permettez-moi de vous fournir deux exemples pour montrer leur utilisation et mettre en évidence les différences par rapport aux instructions IFElse.

Exemple 7 : Utilisation de l’opérateur ET

Imaginez que vous souhaitez utiliser PowerShell pour vérifier si un utilisateur est un administrateur et si son compte est actuellement actif. Vous pouvez utiliser l’opérateur AND pour évaluer les deux conditions simultanément.

Dans cet exemple, le script vérifie si les variables $isAdministrator et $isAccountActive sont toutes les deux vraies. Si les deux conditions sont vraies, le script affiche un message indiquant que l’utilisateur est un administrateur avec un compte actif. Sinon, il affichera un message indiquant que l’utilisateur n’est pas administrateur, ou que son compte est inactif.

$user = “John”
$isAdministrator = $true
$isAccountActive = $false

if ($isAdministrator -and $isAccountActive) {
    Write-Host “$user is an administrator with an active account.”
} else {
    Write-Host “$user is not an administrator, or their account is inactive.”
}
Checking if a user is an administrator and if their account is currently active (Image credit: Petri/Bill Kindle)

Exemple 8 : Utilisation de l’opérateur « OU »

Supposons que vous vouliez vérifier si un serveur exécute Windows Server 2016 ou Windows Server 2019. Avec PowerShell, vous pouvez utiliser l’opérateur OR pour évaluer ces conditions.

Dans cet exemple, le script utilise l’opérateur OR pour vérifier si la variable $osVersion est égale à « Windows Server 2016 » ou « Windows Server 2019 ». Si la condition est vraie, il affiche un message indiquant que le serveur exécute un système d’exploitation pris en charge. Sinon, il affiche un message indiquant que le serveur exécute un système d’exploitation non pris en charge.

$server = “Server01”
$osVersion = “Windows Server 2012”

if ($osVersion -eq “Windows Server 2016” -or $osVersion -eq “Windows Server 2019”) {
    Write-Host “$server is running a supported operating system.”
} else {
    Write-Host “$server is running an unsupported operating system.”
}
Checking if our variable is equal to either Windows Server 2016 or Windows Server 2019 (Image credit: Petri/Bill Kindle)

Exemple 9 : Comparaison avec les instructions IfElse

Les opérateurs AND et OR offrent un moyen concis d’évaluer simultanément plusieurs conditions. Ils diffèrent des instructions IfElse en ce que ces dernières n’évaluent qu’une seule condition à la fois. Si la condition dans une instruction IfElse est vraie, elle exécute le bloc de code associé à l’instruction If. Sinon, elle exécute le bloc de code associé à l’instruction Else.

Pour le montrer, changeons l’exemple 1 pour utiliser une instruction IfElse au lieu de celle-ci. Dans cet exemple modifié, le script vérifie d’abord si l’utilisateur est un administrateur. Si c’est le cas, il vérifie ensuite si le compte est actif. En fonction de l’évaluation de chacune des conditions, il exécute différents blocs de code.

$user = “John”
$isAdministrator = $true
$isAccountActive = $false

if ($isAdministrator) {
    if ($isAccountActive) {
        Write-Host “$user is an administrator with an active account.”
    } else {
        Write-Host “$user is an administrator, but their account is inactive.”
    }
} else {
    Write-Host “$user is not an administrator.”
}
Comparison with IfElse statements (Image credit: Petri/Bill Kindle)

En utilisant cette méthode, il est possible d’exercer un contrôle granulaire sur le flux du script. Cependant, cela peut entraîner des blocs de code imbriqués et une complexité accrue par rapport à l’utilisation d’opérateurs logiques tels que « ET » et « OU ».

Comment utiliser les chaînes ici dans les instructions If

Dans PowerShell, les chaînes ici sont utilisées pour créer des littéraux de chaînes multi-lignes. Elles sont utiles lorsqu’il faut traiter de grands blocs de texte ou quand il est nécessaire de préserver le formatage.

Lorsque vous utilisez des chaînes ici dans des instructions If, vous pouvez comparer une valeur de chaîne à une chaîne multi-lignes. Voici la syntaxe pour utiliser les chaînes ici dans les instructions If de PowerShell :

if ($string -eq @’
    Multi-line
    string
    ‘@)
{
    # Code to execute if the condition is true
}
else
{
    # Code to execute if the condition is false
}

Permettez-moi de vous donner deux exemples pour vous aider à mieux comprendre comment utiliser les chaînes ici dans les instructions If.

Exemple 10 : Vérification d’un message spécifique

Supposons qu’on ait un script PowerShell qui demande à l’utilisateur un input, et que nous voulions vérifier si l’utilisateur a entré un message spécifique, tel que « Bonjour, le monde ! ». Nous pouvons utiliser une chaîne ici dans une if instruction pour comparer l’input de l’utilisateur à ce message attendu.

Dans l’exemple suivant, le script demande à l’utilisateur d’entrer un message, et nous stockons l’input dans la variable $userInput. L’instruction if compare ensuite l’input de l’utilisateur au message attendu en utilisant une chaîne ici. Si l’input correspond au message attendu, il affiche le message « L’utilisateur a entré le message correct », sinon, il affiche « L’utilisateur a entré un message différent. »

$userInput = Read-Host “Enter a message”

if ($userInput -eq @’
Hello, world!
‘@)
{
    Write-Host “User entered the correct message.”
}
else
{
    Write-Host “User entered a different message.”
}
Using here-strings to check for a specific message (Image credit: Petri/Bill Kindle)

Exemple 11 : Comparaison d’un bloc de script

Voici un autre exemple où nous voulons comparer un bloc de script avec un bloc de code prédéfini. Nous pouvons utiliser les chaînes ici pour définir le bloc de script et les comparer dans une If instruction.

Dans cet exemple, nous avons deux blocs de script, $predefinedCode et $userCode. Nous voulons vérifier si le code de l’utilisateur correspond au code prédéfini. En utilisant les chaînes ici pour définir les blocs de script, nous pouvons les comparer à l’intérieur de l’If instruction.

Si le code de l’utilisateur correspond au code prédéfini, il affiche le message « Le code de l’utilisateur correspond au code prédéfini », sinon, il affiche « Le code de l’utilisateur diffère du code prédéfini. »

$predefinedCode = {
    Write-Host “This is some code.”
    Write-Host “It does something.”
}

$userCode = {
    Write-Host “This is some code.”
    Write-Host “It does something.”
}

if ($userCode -eq $predefinedCode)
{
    Write-Host “The user code matches the predefined code.”
}
else
{
    Write-Host “The user code differs from the predefined code.”
}
Using here-strings to compare a script block (Image credit: Petri/Bill Kindle)

Comment utiliser la concaténation à l’intérieur des instructions If

Dans PowerShell, vous pouvez concaténer des chaînes de caractères en utilisant l’opérateur arithmétique ‘+’ opérateur arithmétique. Pour utiliser la concaténation dans des instructions If, vous devez construire une nouvelle chaîne en combinant plusieurs variables de chaîne ou des chaînes littérales.

Voici deux exemples pour illustrer l’utilisation de la concaténation dans des instructions If de PowerShell : instruction If

Exemple 12 : Concaténation de variables de chaîne

Dans cet exemple, deux variables de chaîne, $firstName et $lastName, sont définies. L’instruction If vérifie si les deux variables contiennent des valeurs (c’est-à-dire qu’elles ne sont pas des chaînes vides).

  • Si les deux conditions sont vraies, nous concaténons le prénom et le nom de famille en utilisant l’opérateur +, et nous stockons le résultat dans la variable $fullName. Nous affichons ensuite le nom complet concaténé à l’aide de la cmdlet Write-Host.
  • Si le prénom ou le nom de famille est manquant, nous verrons que le bloc else s’exécute et affiche un message approprié.
$firstName = “John”
$lastName = “Doe”

if ($firstName -ne ” -and $lastName -ne ”) {
    $fullName = $firstName + “ “ + $lastName
    Write-Host “Full Name: $fullName”
} else {
    Write-Host “First name or last name is missing.”
}
Concatenating string variables (Image credit: Petri/Bill Kindle)

Exemple 13 : Concaténation de chaînes littérales

Dans ce deuxième exemple, trois variables sont définies : $greeting avec la valeur « Bonjour », $name avec la valeur « Alice » et $age avec la valeur 30. L’instruction if vérifie si la variable $name a une valeur en utilisant la méthode IsNullorEmpty().

  • Si c’est vrai, nous créons un message qui concatène la salutation, le nom et l’âge en utilisant l’opérateur +. Nous stockons le message résultant dans la variable $message, puis l’affichons à l’aide de la cmdlet Write-Host.
  • Si le nom est manquant (chaîne vide), le bloc else s’exécute et affiche un message d’erreur approprié.
$greeting = “Hello”
$name = “Alice”
$age = 30

if ([string]::IsNullorEmpty($name) -eq $false){
    $message = $greeting + “, “ + $name + “! Your age is “ + $age + “.”
    Write-Host $message
} else {
    Write-Host “Name is missing.”
}
Concatenating string literals (Image credit: Petri/Bill Kindle)

Globalement, ces deux exemples montrent comment les opérations de concaténation vous permettent de combiner des chaînes dynamiquement en fonction de certaines conditions.

Comment utiliser les chaînes de connexion dans les instructions If

Les chaînes de connexion sont couramment utilisées pour établir des connexions avec des bases de données ou d’autres systèmes externes. Ces chaînes contiennent des informations sur le serveur, le nom de la base de données, les informations d’identification et d’autres paramètres nécessaires pour établir la connexion.

Dans les instructions If, vous pouvez utiliser des chaînes de connexion pour exécuter certains blocs de code en fonction de la réussite ou de l’échec d’une connexion. Voici deux exemples qui montrent l’utilisation des chaînes de connexion dans les instructions If de PowerShell :

Exemple 14 : Vérification d’une connexion à une base de données

Dans cet exemple, nous définissons une chaîne de connexion ($connectionString) qui spécifie le nom du serveur, le nom de la base de données et les informations d’identification. Nous créons ensuite un objet SqlConnection en utilisant la chaîne de connexion. À l’intérieur du bloc try, nous essayons d’ouvrir la connexion en utilisant $connection.Open().

  • Si la connexion réussit, le bloc de code est exécuté dans le bloc try, affichant une connexion réussie.
  • Si une exception se produit (c’est-à-dire si la connexion échoue), le bloc de code est exécuté dans le bloc catch, affichant une connexion échouée.
# Define the connection string
$connectionString = “Server=server_name;Database=db_name;User Id=user_id;Password=password;"

# Create a SqlConnection object using the connection string
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)

# Attempt to establish the connection
try {
    $connection.Open()
   
    # Connection successful
    Write-Host “Connected to the database.”

    # Perform additional operations on the database if needed

    # Close the connection
    $connection.Close()
}
catch {
    # Connection failed
    Write-Host “Failed to connect to the database.”
}
Checking a database connection (Image credit: Petri/Bill Kindle)

Exemple 15 : Vérification d’une connexion réseau

Dans ce deuxième exemple, nous définissons une chaîne de connexion ($connectionString) qui spécifie le nom du serveur et le numéro de port. Nous créons ensuite un objet TcpClient en utilisant la chaîne de connexion. À l’intérieur du bloc try, nous essayons d’établir une connexion avec le serveur en utilisant $tcpClient.Connect(”nom_du_serveur”, 1234).

  • Si la connexion réussit, le bloc de code est exécuté dans le bloc try, affichant une connexion réussie.
  • Si une exception se produit (c’est-à-dire, si la connexion échoue), le bloc de code est exécuté sous le bloc catch, montrant une connexion échouée.
# Define the connection string
$connectionString = “Server=server_name;Port=1234;"

# Create a TcpClient object using the connection string
$tcpClient = New-Object System.Net.Sockets.TcpClient

# Attempt to establish the connection
try {
    $tcpClient.Connect(”server_name”, 1234)
   
    # Connection successful
    Write-Host “Connected to the server.”

    # Perform additional operations if needed

    # Close the connection
    $tcpClient.Close()
}
catch {
    # Connection failed
    Write-Host “Failed to connect to the server.”
}
Checking a network connection (Image credit: Petri/Bill Kindle)

Ces exemples ci-dessus sont simplifiés et supposent une connexion réussie si aucune exception n’est levée. Dans des scénarios réels, il est important de gérer les exceptions de manière appropriée. Vous devez utiliser des mécanismes de gestion des erreurs et d’authentification supplémentaires en fonction des besoins spécifiques de votre connexion.

Comment utiliser les instructions Break et Continue dans une déclaration If

En PowerShell, les instructions Break et Continue sont utilisées pour contrôler le flux d’exécution au sein des boucles et des commutateurs. Alors que Break vous permet de sortir d’une boucle ou d’un commutateur, Continue vous permet de passer à l’itération suivante et de sauter l’itération en cours.

Bien que ces instructions soient généralement utilisées dans des boucles, vous pouvez également les utiliser dans une déclaration If pour obtenir un comportement spécifique. Explorons comment utiliser un Break et un Continue dans des déclarations If avec deux exemples faciles à suivre.

Exemple 16 : Utiliser la instruction Break dans une instruction If

Dans cet exemple, nous avons un tableau de nombres de 1 à 10. Nous utilisons une instruction Foreach pour parcourir chaque nombre. Dans le corps de la boucle, nous vérifions si le numéro courant est égal à 6.

  • Si c’est le cas, nous affichons un message et ensuite, nous utilisons l’instruction Break pour sortir de la boucle.
  • Si le nombre n’est pas égal à 6, nous affichons simplement le numéro courant.
  • Lorsque la boucle rencontre le numéro 6, elle sort de la boucle et le programme continue avec le code suivant.
$numbers = 1..10

foreach ($number in $numbers) {
    if ($number -eq 6) {
        Write-Host “Found the number 6. Exiting the loop.”
        break
    }
   
    Write-Host “Current number is: $number”
}
Using Break in an If statement (Image credit: Petri/Bill Kindle)

Exemple 17 : Utiliser l’instruction Continue dans une instruction If

Dans cet exemple, nous avons de nouveau un tableau de nombres de 1 à 10. Nous utilisons une instruction Foreach pour parcourir chaque nombre. Tout d’abord, nous vérifions si le numéro courant est 3 ou 7.

  • Si c’est vrai, nous affichons un message et ensuite, nous utilisons l’instruction Continue pour sauter l’itération courante et passer à la suivante.
  • Si le nombre n’est pas 3 ou 7, nous affichons le numéro courant. La boucle continuera jusqu’à ce que nous évalue tous les nombres.
$numbers = 1..10

foreach ($number in $numbers) {
    if ($number -eq 3 -or $number -eq 7) {
        Write-Host “Skipping the number $number”
        continue
    }
   
    Write-Host “Current number is: $number”
}
Using Continue in an If statement (Image credit: Petri/Bill Kindle)

Dans les deux exemples, nous avons utilisé des instructions If pour exécuter certaines actions conditionnellement en fonction de conditions spécifiques. L’instruction Break nous a permis de quitter complètement la boucle, tandis que l’instruction Continue a permit de sauter le code restant dans l’itération courante et de passer à l’itération suivante.

Comment utiliser des tableaux de hachage à l’intérieur d’instructions If

Dans PowerShell, vous pouvez utiliser des tableaux de hachage à l’intérieur d’instructions If pour effectuer des vérifications conditionnelles basées sur des paires clé-valeur. Les tableaux de hachage sont une collection de paires clé-valeur où chaque clé est unique.

Voici deux exemples montrant comment utiliser des tableaux de hachage dans des instructions If de PowerShell.

Exemple 18 : Vérification de l’existence d’une clé spécifique dans un tableau de hachage

Dans cet exemple, nous avons un tableau de hachage nommé $myHashtable avec trois paires clé-valeur. L’instruction If vérifie si la clé “Age” existe dans le tableau de hachage en utilisant la méthode ContainsKey(). Si la clé existe, elle affiche un message indiquant que l’age est présent; sinon, elle affiche un message indiquant que l’age n’est pas présent.

# Create a hashtable
$myHashtable = @{
    “Name” = “John”
    “Age” = 30
    “City” = “New York”
}

# Check if a specific key exists in the hashtable
if ($myHashtable.ContainsKey(”Age”)) {
    Write-Host “Age is present in the hashtable.”
}
else {
    Write-Host “Age is not present in the hashtable.”
}
Checking if a specific key exists in a hashtable (Image credit: Petri/Bill Kindle)

Exemple 19 : Vérification de l’existence d’une valeur spécifique dans un tableau de hachage

Dans cet exemple, nous avons de nouveau le même tableau de hachage nommé $myHashtable. L’instruction If vérifie si la valeur “New York” existe dans le tableau de hachage en utilisant la méthode ContainsValue(). Si la valeur existe, elle affiche un message indiquant que la ville est New York; sinon, elle affiche un message indiquant que la ville n’est pas New York.

# Create a hashtable
$myHashtable = @{
    “Name” = “John”
    “Age” = 30
    “City” = “New York”
}

# Check if a specific value exists in the hashtable
if ($myHashtable.ContainsValue(”New York”)) {
    Write-Host “The city is New York.”
}
else {
    Write-Host “The city is not New York.”
}
Checking if a specific value exists in a hashtable (Image credit: Petri/Bill Kindle)

Comment utiliser des tableaux dans des instructions If

En PowerShell, nous pouvons utiliser des tableaux dans des instructions If pour vérifier certaines conditions et effectuer des actions spécifiques en fonction de ces conditions. Voici deux exemples qui montrent l’utilisation de tableaux dans des instructions If.

Exemple 20 : Vérifier si un tableau contient une valeur spécifique

Dans cet exemple, nous avons un tableau appelé $numbers qui contient une séquence de nombres. L’instruction If vérifie si le tableau contient la valeur ‘3’ en utilisant l’opérateur -contains. Si la condition est vraie, elle affichera « Le tableau contient la valeur 3 ». Sinon, elle affichera « Le tableau ne contient pas la valeur 3 ».

# Define an array of numbers
$numbers = 1, 2, 3, 4, 5

# Check if the array contains a specific value, e.g., 3
if ($numbers -contains 3) {
    Write-Host “The array contains the value 3.”
} else {
    Write-Host “The array does not contain the value 3.”
}
Checking if an array contains a specific value (Image credit: Petri/Bill Kindle)

Exemple 21 : Vérifier si un tableau est vide

Dans cet exemple, nous avons un tableau vide appelé $emptyArray. L’instruction If vérifie si la propriété de longueur du tableau est égale à 0. Si la condition est vraie, elle affichera « Le tableau est vide ». Sinon, elle affichera « Le tableau n’est pas vide ».

# Define an empty array
$emptyArray = @()

# Check if the array is empty
if ($emptyArray.Length -eq 0) {
    Write-Host “The array is empty.”
} else {
    Write-Host “The array is not empty.”
}
Checking if an array is empty (Image credit: Petri/Bill Kindle)

Comment utiliser les instructions Switch en PowerShell

Dans PowerShell, l’instruction Switch permet d’effectuer une dérivation conditionnelle en fonction de la valeur d’une variable ou d’une expression. Elle vous permet de comparer une seule valeur à plusieurs valeurs et d’exécuter des blocs de code différents en fonction de la correspondance.

Voici une explication de l’utilisation des instructions Switch dans PowerShell avec deux exemples faciles à suivre.

Exemple 22 : Vérification des jours de la semaine

Dans cet exemple, nous avons une variable $day qui représente le jour en cours. L’instruction Switch vérifie la valeur de $day par rapport à différentes possibilités à l’aide des chaînes « Lundi », « Mardi », et ainsi de suite.

  • S’il y a une correspondance, le script exécute le bloc de code correspondant.
  • S’il n’y a pas de correspondance, le script exécute le bloc par défaut. Ici, la sortie sera « C’est le début de la semaine ! »
$day = (Get-Date).DayOfWeek

switch ($day) {
    “Monday” {
        Write-Host “It’s the start of the week!”
    }
    “Tuesday” {
        Write-Host “It’s Tuesday!”
    }
    “Wednesday” {
        Write-Host “It’s the middle of the week!”
    }
    “Thursday” {
        Write-Host “It’s almost Friday!”
    }
    “Friday” {
        Write-Host “It’s finally Friday!”
    }
    Default {
        Write-Host “It’s the weekend!”
    }
}
Using a Switch statement to check for days of the week (Image credit: Petri/Bill Kindle)

Exemple 23 : Catégorisation des nombres

Dans ce deuxième exemple, nous avons une variable $number avec la valeur 42. L’instruction Switch vérifie la valeur de $number par rapport à différentes possibilités à l’aide de blocs de script. Le premier cas vérifie si le nombre est inférieur à 0, le deuxième cas vérifie s’il est supérieur à 0, et le bloc par défaut s’exécute si aucun autre cas ne correspond. Ici, la sortie sera « Nombre positif. »

$number = 42

switch ($number) {
    { $_ -lt 0 } {
        Write-Host “Negative number”
    }
    { $_ -gt 0 } {
        Write-Host “Positive number”
    }
    Default {
        Write-Host “Zero”
    }
}
Using a Switch statement to categorize numbers (Image credit: Petri/Bill Kindle)

Dans les deux exemples, vous pouvez personnaliser les blocs de code dans chaque cas pour exécuter toutes les actions désirées en fonction de la condition de correspondance. L’instruction Switch est un constructeur puissant dans PowerShell qui offre une manière élégante de gérer plusieurs conditions pour exécuter des blocs de code.

PowerShell et logique conditionnelle : Un résumé

De manière générale, les instructions If et leurs constructes connexes offrent des outils puissants pour implémenter une logique conditionnelle dans les scripts PowerShell. If les instructions sont essentielles pour l’exécution conditionnelle du code car elles permettent de tester une condition et d’exécuter différents blocs de code en fonction du fait que la condition est évaluée à vrai ou faux.

Les exemples que j’ai fournis dans cet article ont montré comment les instructions If de PowerShell peuvent être utilisées pour vérifier si un nombre est positif ou négatif, ou si un fichier existe. Cependant, j’ai détaillé beaucoup d’autres astuces de logique conditionnelle dans cet article pour vous aider à devenir un meilleur scriptwriter PowerShell. L’information fournie ici était assez dense, donc voici ce que vous devez retenir.

  • Else les instructions sont utilisées en conjonction avec les instructions If pour créer une logique conditionnelle, fournissant une option de secours lorsque la condition n’est pas remplie.
  • ElseIf les instructions peuvent également être utilisées pour créer des conditions qui sont vérifiées uniquement si les instructions If ou ElseIf précédentes sont évaluées à faux, permettant une logique conditionnelle plus complexe.
  • Les opérateurs logiques tels que AND et OR peuvent être utilisés pour combiner plusieurs conditions dans des instructions If afin de contrôler le flux du script. Les chaînes de caractères peuvent également être utilisées dans des instructions If pour comparer les valeurs de chaînes de caractères par rapport à des chaînes sur plusieurs lignes.
  • La concaténation de chaînes à l’aide de l’opérateur ‘+’ permet également de combiner dynamiquement des chaînes en fonction de conditions spécifiques dans des instructions If.
  • Les chaînes de connexion sont couramment utilisées dans des instructions If pour exécuter conditionnellement des blocs de code en fonction du succès ou de l’échec d’une connexion à des bases de données ou des systèmes externes.
  • Les instructions Break et Continue offrent un contrôle sur l’exécution de boucles et de commutateurs, et vous pouvez les utiliser dans des instructions If pour obtenir un comportement spécifique.
  • Les tableaux et les tableaux associatifs peuvent également être utilisés dans des instructions If pour vérifier des conditions spécifiques et effectuer des actions en fonction de ces conditions.
  • Enfin, l’instruction Switch permet un branchement conditionnel en fonction de la valeur d’une variable ou d’une expression, ce qui permet l’exécution de différents blocs de code en fonction de la correspondance.

Merci d’avoir lu ce guide détaillé sur les instructions If en PowerShell, n’hésitez pas à poser des questions dans la section des commentaires ci-dessous!

Source:
https://petri.com/powershell-if-statement/