Introduction
Les structures conditionnelles en PowerShell sont des outils essentiels pour contrôler le flux d’exécution d’un script en fonction de conditions spécifiques. Dans cet article, nous explorerons en détail ces structures en utilisant l’exemple d’un système de gestion d’inventaire pour une bibliothèque numérique.
If : Vérification simple des conditions
La structure if
est utilisée pour exécuter un bloc de code si une condition est vraie.
Syntaxe de base
if (condition) {
# Code à exécuter si la condition est vraie
}
Exemple détaillé
function Verifier-DisponibiliteLivre($titre, $nombreExemplaires) {
if ($nombreExemplaires -gt 0) {
Write-Host "Le livre '$titre' est disponible avec $nombreExemplaires exemplaire(s)."
return $true
}
Write-Host "Le livre '$titre' n'est pas disponible actuellement."
return $false
}
Verifier-DisponibiliteLivre "1984" 3
Verifier-DisponibiliteLivre "Dune" 0
Dans cet exemple, la fonction vérifie si un livre est disponible en fonction du nombre d’exemplaires. Elle utilise une structure if
simple pour déterminer la disponibilité et retourne un booléen en conséquence.
If-Else : Gestion des alternatives
La structure if-else
permet d’exécuter un bloc de code alternatif lorsque la condition initiale n’est pas remplie.
Syntaxe
if (condition) {
# Code si la condition est vraie
} else {
# Code si la condition est fausse
}
Exemple élaboré
function Categoriser-Livre($titre, $anneePublication) {
if ($anneePublication -lt 1900) {
$categorie = "Classique ancien"
} elseif ($anneePublication -ge 1900 -and $anneePublication -lt 2000) {
$categorie = "Classique moderne"
} else {
$categorie = "Contemporain"
}
Write-Host "Le livre '$titre' publié en $anneePublication est catégorisé comme : $categorie"
}
Categoriser-Livre "Pride and Prejudice" 1813
Categoriser-Livre "1984" 1949
Categoriser-Livre "The Da Vinci Code" 2003
Cette fonction utilise une structure if-elseif-else
pour catégoriser les livres en fonction de leur année de publication, démontrant comment gérer plusieurs conditions alternatives.
Switch : Gestion de multiples conditions
La structure switch
est idéale pour gérer de multiples conditions de manière concise.
Syntaxe de base
switch (expression) {
valeur1 { action1 }
valeur2 { action2 }
default { actionParDefaut }
}
Exemple avancé
function Evaluer-EtatLivre($titre, $etat) {
$action = switch ($etat) {
"Neuf" { "Mettre en rayon principal" }
"Bon" { "Mettre en rayon secondaire" }
"Usé" { "Envoyer en réparation" }
"Très usé" { "Considérer le remplacement" }
default { "Évaluation manuelle requise" }
}
Write-Host "Pour le livre '$titre' en état '$etat': $action"
}
Evaluer-EtatLivre "Le Petit Prince" "Neuf"
Evaluer-EtatLivre "Harry Potter" "Bon"
Evaluer-EtatLivre "Le Seigneur des Anneaux" "Très usé"
Evaluer-EtatLivre "Moby Dick" "Détérioré"
Cette fonction utilise un switch
pour déterminer l’action à entreprendre en fonction de l’état d’un livre, montrant comment gérer efficacement plusieurs cas distincts.
Techniques avancées
Opérateur ternaire
PowerShell ne possède pas d’opérateur ternaire natif, mais on peut simuler un comportement similaire :
function Verifier-Disponibilite($titre, $enStock) {
$statut = $enStock ? "disponible" : "indisponible"
Write-Host "Le livre '$titre' est $statut."
}
Verifier-Disponibilite "1984" $true
Verifier-Disponibilite "Brave New World" $false
Switch avec expressions régulières
function Categoriser-ISBN($isbn) {
switch -regex ($isbn) {
'^978-0' { "Livre anglophone" }
'^978-2' { "Livre francophone" }
'^978-3' { "Livre germanophone" }
default { "Origine non déterminée" }
}
}
Write-Host (Categoriser-ISBN "978-0-306-40615-7")
Write-Host (Categoriser-ISBN "978-2-7654-1005-6")
Cette fonction utilise des expressions régulières dans un switch
pour catégoriser les livres selon leur ISBN.
If avec groupement de conditions
function Verifier-EligibilitePret($age, $abonnementValide, $livresEmpruntes) {
if (($age -ge 18 -or ($age -ge 12 -and $abonnementValide)) -and $livresEmpruntes -lt 5) {
Write-Host "Éligible pour un nouvel emprunt."
} else {
Write-Host "Non éligible pour un nouvel emprunt."
}
}
Verifier-EligibilitePret 20 $true 3
Verifier-EligibilitePret 15 $true 2
Verifier-EligibilitePret 30 $true 6
Cette fonction démontre l’utilisation de conditions complexes groupées dans une structure if
.

Conclusion
Les structures conditionnelles en PowerShell offrent une grande flexibilité pour gérer différentes situations dans un système de gestion de bibliothèque. En maîtrisant ces structures, vous pouvez créer des scripts robustes et efficaces pour automatiser diverses tâches de gestion et de prise de décision.