4. Ajoutez de la logique fonctionnelle
Commandes utiles pour résoudre les exercices
Vous n’avez pas besoin de tout connaître : retenez l’idée et utilisez l’aide (Get-Help) si nécessaire.
Entrées / sorties
- Read-Host Demande une saisie à l’utilisateur (texte). Exemple :
$nom = Read-Host "Votre nom" - Write-Output Affiche ou renvoie un message (sortie standard). Exemple :
Write-Output "OK"
Tests et conversions
- Test-Path Vérifie si un fichier/dossier existe. Exemple :
Test-Path "C:\Temp" - -eq / -ne Comparaison (égal / différent). Exemple :
$x -eq 5 - -gt / -lt Comparaison (plus grand / plus petit). Exemple :
$age -gt 18 - [int] Convertit du texte en nombre. Exemple :
$age = [int](Read-Host "Âge")
Aide
- Get-Help Voir syntaxe et exemples. Exemple :
Get-Help Test-Path -Examples
Description
if permet d’exécuter un bloc si une condition est vraie, sinon un autre bloc (via else).
C’est un outil central pour sécuriser un script : on agit uniquement si la condition est valide.
Syntaxe
if (condition) {
# actions si vrai
} else {
# actions si faux
}
Exemple simple (âge)
$age = [int](Read-Host "Entrez votre âge")
if ($age -ge 18) {
Write-Output "Accès autorisé"
} else {
Write-Output "Accès refusé"
}
Explication des commandes utilisées
- Read-Host : demande à l’utilisateur de saisir une valeur (ici l’âge).
- [int](...) : convertit la saisie (texte) en nombre pour pouvoir comparer correctement.
- -ge : “greater or equal” = supérieur ou égal.
- if / else : choisit quel bloc exécuter selon la condition.
- Write-Output : affiche (ou renvoie) le message final.
Exercices (4)
Les corrigés sont masqués : cherchez d’abord, puis comparez.
Exercice IF 1 — Mot de passe
Demandez un mot de passe. Si la saisie vaut admin afficher “OK”, sinon “Incorrect”.
Voir un corrigé possible
$pwd = Read-Host "Mot de passe"
if ($pwd -eq "admin") {
Write-Output "OK"
} else {
Write-Output "Incorrect"
}
Exercice IF 2 — Chemin (Test-Path)
Demandez un chemin. S’il existe : “Présent”, sinon : “Absent”.
Voir un corrigé possible
$path = Read-Host "Chemin à tester"
if (Test-Path $path) {
Write-Output "Présent"
} else {
Write-Output "Absent"
}
Exercice IF 3 — Nombre pair / impair
Demandez un nombre. Affichez “Pair” si le nombre est divisible par 2, sinon “Impair”.
Voir un corrigé possible
$n = [int](Read-Host "Entrez un nombre")
if (($n % 2) -eq 0) {
Write-Output "Pair"
} else {
Write-Output "Impair"
}
Exercice IF 4 — Seuil d’alerte
Demandez une valeur (ex. température). Si elle est > 30 : “Alerte”, sinon “Normal”.
Voir un corrigé possible
$t = [int](Read-Host "Température")
if ($t -gt 30) {
Write-Output "Alerte"
} else {
Write-Output "Normal"
}
Description
switch traite plusieurs cas selon une valeur. C’est idéal pour créer un menu de script : l’utilisateur choisit une option, et le script exécute l’action correspondante.
Syntaxe
switch ($value) {
"1" { # cas 1 }
"2" { # cas 2 }
default { # autre }
}
Exemple simple (menu)
$choix = Read-Host "Menu : 1=Bonjour 2=Date 3=Nom PC"
switch ($choix) {
"1" { Write-Output "Bonjour !" }
"2" { Write-Output (Get-Date) }
"3" { Write-Output $env:COMPUTERNAME }
default { Write-Output "Choix invalide" }
}
Explication des commandes utilisées
- Read-Host : lit le choix utilisateur (ici “1”, “2” ou “3”).
- switch : compare la valeur saisie à plusieurs cas.
- Write-Output : affiche le résultat du cas choisi.
- Get-Date : renvoie la date/heure actuelle.
- $env:COMPUTERNAME : variable d’environnement contenant le nom de la machine.
- default : exécuté si aucun cas ne correspond.
Exercices (4)
Corrigés masqués. L’objectif est de produire une logique menu claire et robuste.
Exercice SWITCH 1 — Menu 2 options
Menu : 1=Afficher “OK”, 2=Afficher “STOP”, sinon “Invalide”.
Voir un corrigé possible
$c = Read-Host "1=OK 2=STOP"
switch ($c) {
"1" { Write-Output "OK" }
"2" { Write-Output "STOP" }
default { Write-Output "Invalide" }
}
Exercice SWITCH 2 — Catégorie de note
Demandez une note (A/B/C). A=“Très bien”, B=“Bien”, C=“À renforcer”, sinon “Inconnu”.
Voir un corrigé possible
$note = Read-Host "Note (A/B/C)"
switch ($note) {
"A" { "Très bien" }
"B" { "Bien" }
"C" { "À renforcer" }
default { "Inconnu" }
}
Exercice SWITCH 3 — Audit rapide
Menu : 1=Tester un chemin (Test-Path), 2=Afficher la date (Get-Date), sinon “Invalide”.
Voir un corrigé possible
$choix = Read-Host "1=Tester chemin 2=Date"
switch ($choix) {
"1" {
$p = Read-Host "Chemin"
if (Test-Path $p) { "Présent" } else { "Absent" }
}
"2" { Get-Date }
default { "Invalide" }
}
Exercice SWITCH 4 — Mode d’exécution
Demandez un mode : audit, repair, help.
Affichez un message différent selon le mode, sinon “Mode inconnu”.
Voir un corrigé possible
$mode = Read-Host "Mode (audit/repair/help)"
switch ($mode) {
"audit" { "Mode audit : lecture seule" }
"repair" { "Mode repair : actions correctives" }
"help" { "Aide : choisissez audit/repair/help" }
default { "Mode inconnu" }
}