Jusqu’ici, chaque commande produisait un résultat qu’on affichait ou qu’on faisait circuler directement dans le pipeline. Sophie pose une caisse vide sur l’établi : « Parfois, tu as besoin de mettre une pièce de côté, pour t’en resservir plus tard dans l’atelier. C’est à ça que servent les variables. »
Créer une variable
En PowerShell, toute variable commence par le symbole $ :
$nomServeur = "SRV-NORDIKA-01"
$nombreCPU = 4
$estCritique = $truePas besoin de déclarer le type à l’avance : PowerShell devine automatiquement le type en fonction de la valeur assignée. C’est ce qu’on appelle le typage dynamique.
Pour afficher le contenu d’une variable, il suffit de l’appeler :
$nomServeurLes types les plus courants
Même si PowerShell devine le type tout seul, il est utile de savoir les reconnaître, notamment pour éviter des erreurs de comparaison plus tard :
| Type | Exemple | Description |
|---|---|---|
| String | « SRV-NORDIKA-01 » | Une chaîne de caractères, entre guillemets |
| Int32 | 4 | Un nombre entier |
| Double | 3.14 | Un nombre à virgule |
| Boolean | $true / $false | Vrai ou faux |
| DateTime | Get-Date | Une date et une heure |
Pour vérifier le type réel d’une variable à tout moment :
$nombreCPU.GetType()Guillemets simples vs guillemets doubles
Un piège fréquent chez les débutants : les guillemets simples et doubles ne se comportent pas de la même façon.
$nomServeur = "SRV-01"
Write-Output "Le serveur est : $nomServeur" # Affiche : Le serveur est : SRV-01
Write-Output 'Le serveur est : $nomServeur' # Affiche : Le serveur est : $nomServeurAvec des guillemets doubles, PowerShell interprète les variables à l’intérieur de la chaîne (on appelle ça l’interpolation). Avec des guillemets simples, tout est traité comme du texte brut, y compris $nomServeur.
Retenez ce réflexe simple : guillemets doubles par défaut si vous avez besoin d'insérer une variable dans du texte, guillemets simples si vous voulez un texte figé, sans surprise.Nommer ses variables correctement
Quelques bonnes pratiques utilisées dans tous les scripts Nordika :
- Noms explicites plutôt que
$a,$x,$temp: préférez$nomServeur,$listeUtilisateurs - Convention camelCase ou PascalCase, au choix, mais rester cohérent dans tout un script
- Éviter les noms déjà utilisés par PowerShell (
$Error,$Host,$PSVersionTable…), sous peine d’écraser des variables système importantes
$Error = "test" # Mauvaise idée : $Error est une variable automatique de PowerShell !Variables non initialisées
Une variable jamais assignée renvoie $null, sans erreur :
$maVariable
# N'affiche rien, ne provoque pas d'erreurC’est une source fréquente de bugs silencieux : un script qui utilise une variable mal orthographiée ne plantera pas forcément, il continuera simplement avec une valeur vide. On reverra ce piège en section 5 avec la gestion des erreurs.
Une variable, c’est une caisse sur l’établi de Nordika : vous y déposez une pièce pour la retrouver plus tard, sans avoir à la refabriquer. Toute la logique de script qu’on construira à partir de la section 5 repose sur cette idée simple.
Dans la prochaine leçon, on passe à la caisse suivante : les tableaux, pour stocker plusieurs pièces à la fois.