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
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici

Les collections

Introduction

Les données que nous manipulons sont de natures différentes : il peut s’agir de valeurs scalaires ou composites, de chaînes ou de nombres, etc. En outre, ces données sont souvent, dans le cadre d’une activité se résumant à de l’administration système et réseau, massives. Du point de vue de l’automatisation des opérations visant justement l’administration dans son sens général, les données extraites de diverses sources doivent pouvoir être stockées dans des structures flexibles.

Ces structures, du point de vue de Windows PowerShell, sont au nombre de deux : les tableaux et les dictionnaires. Ce chapitre se bornera donc à mettre en perspective ces deux types de constructions, indispensables pour l’utilisateur qui aura besoin, au cours de son propre cheminement, de manipuler des données complexes et nombreuses.

Les tableaux

1. Comprendre la notion de tableau

La première structure que nous allons essayer de comprendre se nomme tableau. Mais qu’est-ce qu’un tableau ? Un tableau est une structure de données dont le but est de stocker plusieurs valeurs. Avec Windows PowerShell, les valeurs en question sont, ou ne sont pas, de même type.

Syntaxe d’un tableau


$Tableau (1) = <Valeur_1>,<Valeur_2>,<Valeur_3>,<Valeur_4>,<Valeur_5> (2)
 

La création d’un tableau consiste en l’affectation de plusieurs valeurs (2) à une seule et même variable (1). Chaque valeur est séparée d’une autre par une virgule (,). Créons un tableau que nous appellerons $Tab :

PS> $Tab = 1,2,3,4,5,6,7,8,9,10
 

Le tableau $Tab contient dix valeurs numériques ; pour les afficher, il faut simplement taper le nom de la variable en console :

PS> $Tab 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10
 

L’opérateur de plage (..), que nous étudierons dans un prochain chapitre, permet de réaliser la même opération... en allant plus vite :

PS> $Tab = 1..10 
PS> $Tab 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10
 

Voici un autre exemple de création de tableaux :

PS> $Tabstr = "Windows PowerShell","Windows Command Prompt","Korn Shell" 
PS> $Tabstr 
 
Windows PowerShell 
Windows Command Prompt 
Korn Shell
 

Celui-ci est différent, car les éléments contenus sont des chaînes de caractères. Ce n’est pas tout, une sortie de commande peut tout à fait être contenue au sein d’un tableau. Par exemple, la commande Get-Service :

PS> $Tabsvc = Get-Service  
PS> $Tabsvc 
 
Status   Name               DisplayName 
------   ----               ----------- 
Stopped  AeLookupSvc        Expérience d'application 
Stopped  ALG                Service de la passerelle de la couc... 
Running ...

Les dictionnaires

1. Comprendre la notion de dictionnaire

Un dictionnaire ou tableau associatif est une structure de données qui consiste à associer des paires [clé = valeur]. Les clés et valeurs qui constituent un dictionnaire peuvent évidemment être de mêmes types ou de types différents. Il s’agit d’une structure très flexible permettant de construire des collections d’objets plus complexes que ne le permettent les tableaux.

Syntaxe d’un dictionnaire


(1) @{ <clé> (2) = <valeur> (3) ; (4) [ <clé> = <valeur> ] } 
 

Un dictionnaire commence par le signe @ (1) ; chaque paire [clé (2) = valeur (3)] est séparée d’une autre par le caractère ; (4). De plus, la manière dont les données sont stockées se révèle d’une efficacité significative, car les usages proposés par les dictionnaires sont sensiblement nombreux.

Voici un dictionnaire très simple :

PS> $hash = @{ Blue = "Bleu" ; Red = "Rouge" ; Green = "Vert" ;  
Yellow = "Jaune" ; Black = "Noir" }
 

Comme nous pouvons le voir, il est constitué de chaînes de caractères, contient cinq paires [clé = valeur] et est affichable par l’appel du nom de la variable qui le représente, c’est-à-dire $hash :

PS> $hash 
 
Name                           Value 
----                           ----- 
Red                            Rouge 
Blue                           Bleu 
Yellow                         Jaune 
Black                          Noir 
Green                          Vert
 

Un point important est que l’ordre d’affichage des éléments ne correspond pas à celui de la définition du dictionnaire $hash. Pour des raisons particulières...