variables définies par l'utilisateur
S’applique à : Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Dernière rubrique modifiée : 2006-09-21
Une variable est un emplacement de stockage des informations. Contrairement à de nombreux environnements de programmation, dans Exchange Management Shell, vous n’avez pas à déclarer une variable avant son utilisation.
Vous désignez une variable en ajoutant une chaîne devant un signe dollar ($
). Il est recommandé d’entourer la chaîne d’accolades ({ }
) si cette chaîne contient des espaces ou d’autres caractères spéciaux. La notation de référence de tableau ([ ]
), vous permet de vous occuper des éléments d’un tableau ou d’une variable de table de hachage.
Pour plus d'informations sur les tableaux, consultez la rubrique Tableaux.
Utilisation des variables pour le stockage des valeurs
Les variables sont très importantes pour le stockage des valeurs. L’opérateur d’affectation vous permet d’affecter des valeurs aux variables. Pour plus d'informations sur les opérateurs, consultez la rubrique Syntaxe.
Par exemple, la commande ci-après vous permet d’affecter une valeur 8
à la variable $Example
:
$Example = 8
Cette commande permet d’affecter le nombre entier 8
à la variable $Example
. Vous pouvez alors appeler la variable $Example
plus tard dans une autre commande pour rappeler la valeur. Les valeurs spécifiées dans une variable sont traitées exactement comme ci la valeur contenue était saisie dans l’emplacement de spécification de la variable. Par exemple, les deux commandes ci-après sont équivalentes si à la valeur $Example2
est assignée la valeur "Hello"
:
Write-Host $Example2
Write-Host "Hello"
Stockage de la sortie d’une commande dans une variable
Vous pouvez également stocker les sorties des commandes dans une variable pour un usage ultérieure. Lorsque vous affectez une commande à une variable, cette commande est évaluée au moment où elle est exécutée. La sortie de cette commande est attribuée à la variable. Par exemple, si vous exécutez $CurrentDate = Get-Date
sur la ligne de commande, et appelez $CurrentDate
à répétition durant plusieurs secondes, la valeur signalée est la même chaque fois que la variable est appelée.
Lorsque vous affectez la sortie d’une commande à une variable, vous pouvez également accéder aux propriétés et aux méthodes de l’objet sous-jacent. Par exemple, pour afficher les propriétés et les méthodes disponibles lorsque vous affectez Get-Date
à $CurrentDate
, utilisez la cmdlet $CurrentDate | Get-Member
. La commande $CurrentDate | Get-Member
, permet de renvoyer les propriétés ci-après dans une liste :
Date Property System.DateTime Date {get;}
Day Property System.Int32 Day {get;}
DayOfWeek Property System.DayOfWeek DayOfWeek {get;}
DayOfYear Property System.Int32 DayOfYear {get;}
Hour Property System.Int32 Hour {get;}
Kind Property System.DateTimeKind Kind {get;}
Millisecond Property System.Int32 Millisecond {get;}
Minute Property System.Int32 Minute {get;}
Month Property System.Int32 Month {get;}
Second Property System.Int32 Second {get;}
Ticks Property System.Int64 Ticks {get;}
TimeOfDay Property System.TimeSpan TimeOfDay {get;}
Year Property System.Int32 Year {get;}
DateTime ScriptProperty System.Object DateTime {get=if ($this.Di...
Vous pouvez alors appeler l’une de ces propriétés en saisissant la variable, une période (.
), ensuite, la propriété à afficher. La commande suivante permet par exemple d’afficher l’année stockée dans une variable.
$CurrentDate.Year
En accédant aux propriétés d’une variable, vous pouvez facilement manipuler et utiliser chaque information stockée dans cette variable sans l’analyse de texte.
Stockage de la sortie d’une commande Dir dans une variable
Vous pouvez également stocker la sortie de la commande Dir
dans une variable. Etant donné que la commande Dir
renvoie de multiples lignes pendant son exécution, chaque ligne retournée est stockée dans une variable comme nouvel élément de tableau. Vous pouvez alors accéder à chaque objet de fichier stocké dans le tableau nouvellement créé. Pour plus d'informations sur les tableaux, consultez la rubrique Tableaux.
La commande ci-après affecte la sortie de la commande Dir
à la variable $DirOutput
:
$DirOutput = Dir
Vous pouvez alors sélectionner un objet de fichier spécifique en spécifiant l'index de tableau à afficher ainsi qu’il suit :
$DirOutput[1].Name
Vous pouvez également créer une simple boucle qui fait le tour de tout le tableau et affiche le nom et la taille de tout fichier stocké dans le tableau ainsi qu’il suit :
0..$DirOutput.Length | ForEach { $DirOutput[$_].Name + " is " + $DirOutput[$_].Length + " bytes long." }
La liste suivante examine cet exemple :
La commande
0..$DirOutput.Length
instruis Exchange Management Shell de sortir un nombre entier à partir de0
jusqu’à la longueur maximale du tableau stocké dans la variable$DirOutput
.La sortie de la commande
0..$DirOutput.Length
est canalisée vers la commandeForEach
qui boucle tout élément du tableau jusqu’à ce qu’elle atteigne la fin du tableau. La commandeForEach
exécute les commandes contenues entre les accolades "{ }
".La variable
$_
stocke l’objet en cours contenu dans le pipeline. Dans ce cas, l’objet du pipeline est un nombre entier produit par la commande0..$DirOutput.Length
comptant à partir de0
jusqu’à la longueur maximale du tableau. Cette variable est utilisée dans la commande$DirOutput[$_].Name
et la commande$DirOutput[$_].Length
pour sélectionner l’élément de tableau auquel accéder.Pour plus d’informations sur la variable
$
_ , consultez la rubrique Variables shell.Le signe plus "
+
" concatène la sortie de la commande $DirOutput[$_].Name
et de la commande$DirOutput[$_].Length
, avec les chaînes fournies, pour créer une sortie semblable à la sortie suivante :abv_dg.dll is 416144 bytes long. addxa.dll is 285056 bytes long. ASDat.MSI is 5626880 bytes long. ASEntDat.MSI is 5626880 bytes long. ASEntIRS.MSI is 910336 bytes long. ASEntSig.MSI is 45056 bytes long. BPA.Common.dll is 211848 bytes long. BPA.ConfigCollector.dll is 101272 bytes long. BPA.NetworkCollector.dll is 52128 bytes long.
Ces exemples montrent que vous pouvez utiliser la propriété Length
plusieurs fois pour afficher des informations différentes sur la même variable. Cela est possible car plusieurs types de données sont stockés dans la variable $DirOutput
. Le premier type de données c'est l'objet de répertoire, le second type ce sont les objets de fichier. Lorsque vous exécutez la commande $DirObject.Length
, sans spécifier d’index de tableau, vous accéder aux types d’objet parent d’annuaire stockés dans le tableau. Lorsque vous spécifiez un index de tableau tel que $DirObject[5].Length
, vous accédez aux objets enfants de fichier stockés dans l’objet d’annuaire.
Ce comportement existe dans de nombreux objets. De façon générale, vous pouvez accéder à plusieurs niveaux de données d’objet contenus dans une variable unique. La capacité à accéder à ces données rend Exchange Management Shell très flexible.