about_Arrays

Mis à jour: mai 2014

S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

Insérez l'introduction ici.

RUBRIQUE

about_Arrays

DESCRIPTION COURTE

Décrit les tableaux, qui sont des structures de données conçues pour stocker des collections d'éléments.

DESCRIPTION DÉTAILLÉE

Un tableau est une structure de données conçue pour stocker une collection d'éléments du même type ou de types différents.

À compter de Windows PowerShell® 3.0, une collection sans objet ou avec un seul objet possède certaines propriétés de tableau.

CRÉATION ET INITIALISATION D'UN TABLEAU

Pour créer et initialiser un tableau, assignez plusieurs valeurs à une variable. Les valeurs stockées dans le tableau sont délimitées par des virgules et séparées du nom de la variable par l'opérateur d'assignation (=).

Par exemple, pour créer un tableau nommé « $A » qui contient les sept valeurs numériques (int) 22, 5, 10, 8, 12, 9 et 80, tapez :

$A = 22,5,10,8,12,9,80

Vous pouvez également créer et initialiser un tableau à l'aide de l'opérateur de plage (..). Par exemple, pour créer et initialiser un tableau nommé « $B » qui contient les valeurs 5 à 8, tapez :

$B = 5..8

Le tableau $B contient donc ces quatre valeurs : 5, 6, 7 et 8.

Si aucun type de données n'est spécifié, Windows PowerShell crée un tableau d'objets (de type System.Object[]). Pour obtenir le type de données d'un tableau, utilisez la méthode GetType(). Par exemple, pour déterminer le type de données du tableau $a, tapez :

$a.GetType()

Pour créer un tableau fortement typé, autrement dit, un tableau qui accepte uniquement des valeurs d'un type particulier, effectuez un transtypage de la variable en tableau string[], long[] ou int32[]. Pour effectuer un transtypage d'un tableau, indiquez un type de tableau, entre crochets, juste avant le nom de la variable. Par exemple, pour créer un tableau d'entiers 32 bits nommé « $ia » et contenant quatre nombres entiers (1500, 2230, 3350 et 4000), tapez :

[int32[]]$ia = 1500,2230,3350,4000

Ce tableau $ia peut donc contenir uniquement des nombres entiers.

Vous pouvez créer des tableaux associés à un autre type pris en charge dans Microsoft .NET Framework. Par exemple, les objets que Get-Process récupère pour représenter les processus sont du type System.Diagnostics.Process. Pour créer un tableau d'objets processus fortement typé, entrez la commande suivante :

[Diagnostics.Process[]]$zz = Get-Process

OPÉRATEUR DE SOUS-EXPRESSION DE TABLEAU

L'opérateur de sous-expression de tableau crée un tableau, même si ce tableau contient zéro ou un seul objet.

La syntaxe de l'opérateur de tableau est la suivante :

@( ... )

Vous pouvez utiliser l'opérateur de tableau pour créer un tableau sans objet ou avec un seul objet.

    PS C:\>$a = @("One")
    PS C:\>$a.Count
    1
    PS C:\>$b = @()
    PS C:\>$b.Count
    0

L'opérateur de tableau est particulièrement utile dans les scripts que vous utilisez pour obtenir un nombre inconnu d'objets.

PS C:\> $p = @(Get-Process Notepad)

Pour plus d'informations sur l'opérateur de sous-expression de tableau, consultez about_Operators.

LECTURE D'UN TABLEAU

Vous pouvez faire référence à un tableau à l'aide du nom de sa variable. Pour afficher tous les éléments du tableau, tapez le nom du tableau. Par exemple :

$a

Vous pouvez faire référence aux éléments dans un tableau à l'aide d'un index, commençant à la position 0. Indiquez le numéro d'index entre crochets. Par exemple, pour afficher le premier élément du tableau $a, tapez :

$a[0]

Pour afficher le troisième élément du tableau $a, tapez :

$a[2]

Les valeurs négatives sont définies à partir de la fin du tableau. Par exemple, « -1 » fait référence au dernier élément du tableau. Pour afficher les trois derniers éléments du tableau, tapez :

$a[-3..-1]

Toutefois, utilisez cette notation avec prudence.

$a[0..-2]

Cette commande ne fait pas référence à tous les éléments du tableau, mis à part le dernier. Elle fait référence au premier, au dernier et à l'avant-dernier éléments dans le tableau.

Vous pouvez utiliser l'opérateur de plage pour afficher un sous-ensemble des valeurs d'un tableau. Par exemple, pour afficher les éléments de données situés aux positions d'index 1 à 3, tapez :

$a[1..3]

Vous pouvez utiliser l'opérateur plus (+) pour combiner une plage avec une liste d'éléments dans un tableau. Par exemple, pour afficher les éléments des positions d'index 0, 2 et 4 à 6, tapez :

$a[0,2+4..6]

Pour obtenir le nombre d'éléments dans un tableau, utilisez la propriété Length ou son alias Count.

$a.Count

Vous pouvez également utiliser des constructions en boucle, telles que les boucles ForEach, For et While, pour faire référence aux éléments dans un tableau. Par exemple, pour utiliser une boucle ForEach pour afficher les éléments du tableau $a, tapez :

foreach ($element in $a) {$element}

La boucle Foreach itère sur toutes les valeurs du tableau et retourne chaque valeur du tableau jusqu'à ce qu'elle atteigne la fin du tableau.

La boucle For est utile pour incrémenter les compteurs lors de la lecture des éléments dans un tableau. Par exemple, pour utiliser une boucle For pour retourner toutes les autres valeurs d'un tableau, tapez :

for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]}

Vous pouvez utiliser une boucle While pour afficher les éléments d'un tableau jusqu'à ce qu'une condition définie ne soit plus remplie. Par exemple, pour afficher les éléments du tableau $a tant que l'index du tableau est inférieur à 4, tapez :

$i=0
while($i -lt 4) {$a[$i]; $i++}

OBTENTION DES MEMBRES D'UN TABLEAU

Pour obtenir les propriétés et méthodes d'un tableau, telles que la propriété Length et la méthode SetValue, utilisez le paramètre InputObject de l'applet de commande Get-Member.

Quand vous redirigez un tableau vers Get-Member, Windows PowerShell envoie les éléments les uns après les autres, et Get-Member retourne le type de chaque élément du tableau (en ignorant les doublons).

Avec le paramètre InputObject, Get-Member retourne les membres du tableau.

Par exemple, la commande suivante obtient les membres du tableau dans la variable $a.

Get-Member -InputObject $a

Vous pouvez également obtenir les membres d'un tableau en tapant une virgule (,) avant la valeur qui est redirigée vers l'applet de commande Get-Member. Dans un tableau de tableaux, la virgule définit le tableau comme deuxième élément. Windows PowerShell redirige les tableaux les uns après les autres, et Get-Member retourne les membres du tableau.

    ,$a | Get-Member
    ,(1,2,3) | Get-Member

GESTION D'UN TABLEAU

Vous pouvez modifier les éléments existants d'un tableau, ajouter un élément à un tableau et combiner les valeurs de deux tableaux dans un troisième tableau.

Pour modifier la valeur d'un élément particulier d'un tableau, spécifiez le nom du tableau et l'index de l'élément à modifier, puis utilisez l'opérateur d'assignation (=) pour entrer la nouvelle valeur de l'élément. Par exemple, pour remplacer la valeur actuelle du deuxième élément dans le tableau $a (position d'index 1) par la valeur 10, tapez :

$a[1] = 10

Pour modifier une valeur, vous pouvez également utiliser la méthode SetValue d'un tableau. L'exemple suivant remplace la deuxième valeur (position d'index 1) dans le tableau $a par la valeur 500 :

$a.SetValue(500,1)

Vous pouvez utiliser l'opérateur += pour ajouter un élément à un tableau. Dans ce cas, Windows PowerShell crée un nouveau tableau contenant les valeurs du tableau initial et la valeur ajoutée. Par exemple, pour ajouter un élément ayant la valeur 200 au tableau dans la variable $a, tapez :

$a += 200

Supprimer des éléments dans un tableau n'est pas très facile. À la place, vous pouvez créer un tableau qui contient uniquement certains éléments d'un tableau existant. Par exemple, pour créer le tableau $t contenant tous les éléments du tableau $a à l'exception de la valeur à la position d'index 2, tapez :

$t = $a[0,1 + 3..($a.length - 1)]

Pour combiner deux tableaux dans un seul tableau, utilisez l'opérateur plus (+). L'exemple suivant crée deux tableaux, les combine, puis affiche le tableau combiné obtenu.

$x = 1,3
$y = 5,9
$z = $x + $y

Le tableau $z contient donc les valeurs 1, 3, 5 et 9.

Pour supprimer un tableau, assignez la valeur $null au tableau. La commande suivante supprime le tableau dans la variable $a.

$a = $null

Vous pouvez aussi utiliser l'applet de commande Remove-Item, mais la méthode d'assignation d'une valeur $null est plus rapide, notamment pour les grands tableaux.

TABLEAUX SANS OBJET OU AVEC UN SEUL OBJET

À compter de Windows PowerShell 3.0, une collection sans objet ou avec un seul objet possède les propriétés Length et Count. De plus, l'indexation d'un tableau à un seul objet est prise en charge. Cette fonctionnalité permet d'éviter les erreurs de script qui se produisent quand une commande qui attend une collection d'objets obtient moins de deux éléments.

Les exemples suivants illustrent cette fonctionnalité.

    #Zero objects
    $a = $null
    $a.Count
    0
    $a.Length
    0
    #One object
    $a = 4
    $a.Count
    1
    $a.Length
    1
    $a[0]
    4
    $a[-1]
    4

VOIR AUSSI

about_Assignment_Operators

about_Hash_Tables

about_Operators

about_For

about_Foreach

about_While