Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

Les variables

Introduction

Windows PowerShell offre, comme tous les autres langages de programmation, la possibilité de créer des variables. La notion de variable est ce qui confère à un langage particulier une certaine souplesse. Aussi bien en mode console qu’en mode scripting, le recours à l’utilisation de variables dans un algorithme donné est un fait tout à fait répandu.

Donc, à la notion de variable comme principe fondamental participant à l’existence d’un langage de programmation, il faut souligner l’aspect pluriel que ce principe peut revêtir. Ce chapitre a pour objectif de se familiariser avec la notion de variable et d’en esquisser les différents types : les variables automatiques, les variables de préférence ainsi que les variables d’environnement.

Comprendre la notion de variable

PowerShell est extrêmement souple en matière de définition de variables, c’est-à-dire que plusieurs types de valeurs peuvent être assignés à une variable particulière ; c’est d’ailleurs un avantage majeur de Windows PowerShell par rapport à d’autres langages.

Plus précisément, une variable pointe vers une adresse mémoire où se trouve son contenu. En PowerShell, une variable doit commencer par le symbole $.

Syntaxe d’une variable


$<Nom_Variable> (1) = <Valeur_Variable> (2)
 

Le nom d’une variable (1) est constitué des caractères A à Z et 0 à 9 et le symbole _ est aussi autorisé. Quant aux caractères spéciaux, ils peuvent aussi être inclus, mais leur utilisation n’est pas recommandée. La valeur d’une variable (2) est unique ou composite. En outre, il peut s’agir d’un même type ou de types différents.

NOTE Le nom des variables

En PowerShell, le nom des variables n’est pas sensible à la casse.

Les exemples qui suivent sont de simples valeurs scalaires :

PS> $name = "PSX" 
PS> $name 
PSX 
PS> $num = 17 
PS> $num 
17 
PS> $path = "C:\devel\scripts" 
PS> $path 
C:\devel\scripts 
 

Et ceux-ci contiennent le résultat de commandes :

PS> $date = Get-Date  
PS> $date 
 
jeudi 2 novembre 2014 09:50:53 
  
PS> $alias = Get-Alias  
PS> $alias 
 
CommandType Name    Definition 
----------- ----    ---------- 
Alias       %       ForEach-Object 
Alias       ?       Where-Object 
Alias       ac      Add-Content 
Alias       asnp    Add-PSSnapIn 
Alias       cat     Get-Content 
Alias       cd      Set-Location 
Alias       chdir   Set-Location 
Alias       clc    ...

Les variables automatiques

Windows PowerShell, au cours de son propre fonctionnement, définit un certain nombre de variables que l’on nomme « variables automatiques ». Les variables automatiques contiennent des informations d’état concernant PowerShell et comme un environnement de ce type change systématiquement, le contenu de ces variables change « automatiquement » de manière logique. Les variables automatiques ont donc une fonction bien précise et les connaître est un avantage pour l’utilisateur.

$$

Contient le dernier jeton de la dernière ligne de commande au cours d’une session Windows PowerShell.

Contient le premier jeton de la dernière ligne de commande au cours d’une session Windows PowerShell.

$?

Contient l’état d’exécution de la dernière opération. La valeur est true si l’opération s’est bien déroulée, et false si celle-ci s’est mal déroulée.

$_

Il s’agit de l’objet actif traité par le pipeline.

$Args

Il s’agit d’une variable tableau contenant une liste de paramètres utilisables par les fonctions, les scripts et les blocs de script.

$LastExitCode

Indique la valeur de sortie de la dernière ligne de commande (si celle-ci utilise une commande native Windows).

$Error

Cette variable contient une liste...

Les variables de préférence

PowerShell est un environnement d’exécution riche, et à ce titre il propose une souplesse dans la définition de certaines configurations. Ces configurations (ou préférences) sont accessibles aux utilisateurs. Du comportement des commandes à la gestion des erreurs, les utilisateurs disposent d’une grande marge de manœuvre pour configurer le comportement de Windows PowerShell, et cela est en partie possible grâce à l’existence des variables de préférence, dont voici les plus fréquemment utilisées.

$ConfirmPreference

Détermine la façon dont Windows PowerShell va demander ou non confirmation avant qu’une commande soit exécutée.

$ErrorActionPreference

Détermine le comportement de Windows PowerShell face aux erreurs ne nécessitant pas l’arrêt de son exécution.

$DebugPreference

Détermine le comportement de Windows PowerShell face aux messages de débogage.

$VerbosePreference

Détermine le comportement de Windows PowerShell face aux messages détaillés.

$WarningPreference

Détermine le comportement de Windows PowerShell face aux messages d’avertissement.

$WhatifPreference

Détermine si le paramètre -Whatif est activé.

$PSEmailServer

Indique le serveur de messagerie par défaut servant à l’envoi...

Les variables d’environnement

Une autre catégorie de variables est celle des variables d’environnement, catégorie plus connue car on la retrouve dans de multiples contextes. Les variables d’environnement contiennent des informations liées au système d’exploitation (nombre de processeurs, type des processeurs, chemin de répertoires importants, chemin d’accès aux exécutables, etc.). Elles sont utilisées par de très nombreux programmes dont Windows PowerShell.

Windows PowerShell autorise l’accès aux variables d’environnement, mais permet aussi leur changement, même si celui-ci n’est pas permanent par défaut. Pour y accéder, un fournisseur (nous étudierons ce concept dans le prochain chapitre) existe :

PS> Get-ChildItem env: 
 
Name                           Value 
----                           ----- 
ALLUSERSPROFILE                C:\ProgramData 
APPDATA                        C:\Users\Kais\AppData\Roaming 
asl.log                        Destination=file 
CommonProgramFiles          ...