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...