about_Variables

Mis à jour: mai 2014

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

RUBRIQUE

about_Variables

DESCRIPTION COURTE

Décrit comment les variables stockent des valeurs qui peuvent être utilisées dans Windows PowerShell®.

DESCRIPTION DÉTAILLÉE

Vous pouvez stocker tous les types de valeurs dans les variables Windows PowerShell. Elles sont généralement utilisées pour stocker les résultats des commandes et les éléments qui sont utilisés dans les commandes et expressions, tels que les noms, les chemins d’accès, les paramètres et les valeurs.

Une variable est une unité de mémoire dans laquelle les valeurs sont stockées. Dans Windows PowerShell, les variables sont représentées par des chaînes de texte qui commencent par un symbole dollar ($), par exemple $a, $process ou $my_var.

Les noms de variables ne respectent pas la casse. Les noms de variables peuvent inclure des espaces et des caractères spéciaux, mais ceux-ci sont difficiles à utiliser et doivent être évités.

Il existe plusieurs types de variables dans Windows PowerShell.

Variables créées par l’utilisateur :

Les variables créées par l’utilisateur sont créées et gérées par l’utilisateur. Par défaut, les variables que vous créez au niveau de la ligne de commande Windows PowerShell existent uniquement pendant que la fenêtre Windows PowerShell est ouverte, et elles sont perdues quand vous fermez la fenêtre. Pour enregistrer une variable, ajoutez-la à votre profil Windows PowerShell. Vous pouvez également créer des variables dans les scripts avec une étendue globale, de script ou locale.

Variables automatiques :

Les variables automatiques stockent l’état de Windows PowerShell. Ces variables sont créées par Windows PowerShell, et Windows PowerShell modifie leurs valeurs si nécessaire pour conserver leur exactitude. Les utilisateurs ne peuvent pas modifier la valeur de ces variables. Par exemple, la variable $PSHome stocke le chemin d’accès au répertoire d’installation Windows PowerShell.

Pour obtenir plus d’informations, une liste et une description des variables automatiques, consultez about_Automatic_Variables.

Variables des préférences :

Les variables des préférences stockent les préférences de l’utilisateur pour Windows PowerShell. Ces variables sont créées par Windows PowerShell et sont remplies avec des valeurs par défaut. Les utilisateurs peuvent modifier les valeurs de ces variables. Par exemple, la variable $MaximumHistoryCount détermine le nombre maximal d’entrées dans l’historique de session.

Pour obtenir plus d’informations, une liste et une description des variables des préférences, consultez about_Preference_Variables.

UTILISATION DE VARIABLES

Pour créer une variable, utilisez une instruction d’assignation pour assigner une valeur à la variable. Vous n’êtes pas obligé de déclarer la variable avant de l’utiliser. La valeur par défaut de toutes les variables est $null.

Exemple :

        PS> $MyVariable = 1, 2, 3
        PS> $path = "C:\Windows\System32"

Les variables sont très utiles pour stocker les résultats des commandes.

Exemple :

          
        PS> $processes = Get-Process         
     
        PS> $Today = (Get-Date).date

Pour afficher la valeur d’une variable, tapez le nom de variable précédé d’un symbole dollar ($).

Exemple :

        PS> $MyVariable
        1
        2
        3
        PS> $Today
        Thursday, September 03, 2009 12:00:00 AM

Pour modifier la valeur d’une variable, affectez une nouvelle valeur à la variable.

L’exemple suivant affiche la valeur de la variable $MyVariable, modifie la valeur de la variable, puis affiche la nouvelle valeur.

        PS> $MyVariable
        1
        2
        3
        PS> $MyVariable = "The green cat."
        PS> $MyVariable
        The green cat.

Pour supprimer la valeur d’une variable, utilisez l’applet de commande Clear-Variable ou remplacez la valeur par $null.

        PS> Clear-Variable -name MyVariable  

        -or-

        PS> $MyVariable = $null

Pour supprimer la variable, utilisez les applets de commande Remove-Variable ou Remove-Item. (Ces applets de commande sont décrites plus loin dans cette rubrique.)

       PS> remove-variable -name MyVariable

       PS> remove-item -path variable:\myvariable

Pour obtenir une liste de toutes les variables dans votre session Windows PowerShell, tapez :

       get-variable

TYPES DE VARIABLES

Vous pouvez stocker n’importe quel type d’objet dans une variable, y compris des entiers, des chaînes, des tableaux, des tables de hachage et des objets qui représentent des processus, des services, des journaux des événements et des ordinateurs.

Les variables Windows PowerShell sont « faiblement typées », ce qui signifie qu’elles ne sont pas limitées à un type d’objet particulier. Une seule variable peut même contenir une collection (un « tableau ») de différents types d’objets en même temps.

Le type de données d’une variable, qui est un type .NET Framework, est déterminé par les types .NET des valeurs de la variable.

Exemple :

        PS> $a = 12     (System.Int32)
        
        PS> $a = "Word" (System.String)

        PS> $a = 12, "Word" (System.Int32, System.String)

        PS> $a = dir C:\Windows\System32  (Files and folders)

Vous pouvez utiliser un attribut de type et la notation de transtypage pour vous assurer qu’une variable peut contenir uniquement les objets du type spécifié ou des objets qui peuvent être convertis en ce type. Si vous essayez d’assigner une valeur d’un autre type, Windows PowerShell essaie de convertir la valeur en son type. S’il n’y parvient pas, l’instruction d’assignation échoue.

Pour utiliser la notation de transtypage, entrez un nom de type entre crochets avant le nom de variable (sur le côté gauche de l’instruction d’assignation). L’exemple suivant crée une variable $number qui peut contenir uniquement des entiers, une variable $words qui peut contenir uniquement des chaînes et une variable $dates qui peut contenir uniquement des objets DateTime.

        PS> [int]$number = 8
        PS> $a = "12345" (The string is converted to an integer.)
        PS> $a = "Hello"
        Cannot convert value "Hello" to type "System.Int32". Error: "Input string was not in a correct format."
        At line:1 char:3
        + $a <<<<  = "Hello"
            + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
            + FullyQualifiedErrorId : RuntimeException
        PS> [string]$words = "Hello"

        PS> $words = 2   (The integer is converted to a string.)

        PS> $words + 10  (The strings are concatenated.)
        210              
        PS> [datetime] $dates = "09/12/91" (The string is converted to a DateTime object.)

        PS> $dates
        Thursday, September 12, 1991 12:00:00 AM

        PS> $dates = 10  (The integer is converted to a DateTime object.)
        PS> $dates
        Monday, January 01, 0001 12:00:00 AM
                

UTILISATION DE VARIABLES DANS LES COMMANDES ET EXPRESSIONS

Pour utiliser une variable dans une expression ou une commande, tapez le nom de variable précédé du symbole dollar ($).

Si le nom de variable et le symbole dollar ne sont pas placés entre guillemets, ou s’ils sont placés entre guillemets doubles ("), la valeur de la variable est utilisée dans la commande ou l’expression.

Si le nom de variable et le symbole dollar sont placés entre guillemets simples ('), le nom de variable est utilisé dans l’expression.

Par exemple, la première commande obtient la valeur de la variable $profile, qui est le chemin d’accès au fichier de profil utilisateur Windows PowerShell dans la console Windows PowerShell. La deuxième commande ouvre le fichier dans le Bloc-notes, et les troisième et quatrième commandes utilisent le nom de la variable dans une expression.

        PS> $profile
        C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
        PS> notepad $profile 
        - or -
        PS> notepad "$profile"
        C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
        PS> '$profile'
        $profile
        PS> 'Use the $profile variable.'
        Use the $profile variable.

Pour plus d’informations sur l’utilisation de guillemets dans Windows PowerShell, consultez about_Quoting_Rules.

NOMS DE VARIABLES QUI INCLUENT DES CARACTÈRES SPÉCIAUX

Les noms de variables commencent par un symbole dollar. Ils peuvent inclure des caractères alphanumériques et des caractères spéciaux. La longueur du nom de la variable est limitée uniquement par la mémoire disponible.

Chaque fois que possible, les noms de variables doivent inclure uniquement des caractères alphanumériques et le trait de soulignement (_). Les noms de variables qui incluent des espaces et d’autres caractères spéciaux sont difficiles à utiliser et doivent être évités.

Pour créer ou afficher un nom de variable qui comprend des espaces ou des caractères spéciaux, placez le nom de la variable entre accolades. Cela indique à Windows PowerShell d’interpréter les caractères dans le nom de variable littéralement.

Par exemple, la commande suivante crée et affiche ensuite une variable nommée « save-items ».

          C:\PS> ${save-items} = "a", "b", "c"
          C:\PS> ${save-items}
          a
          b
          c

La commande suivante obtient les éléments enfants dans le répertoire qui est représenté par la variable d’environnement « ProgramFiles(x86) ».

          C:\PS> Get-childitem ${env:ProgramFiles(x86)}

Pour faire référence à un nom de variable qui contient des accolades, placez le nom de la variable entre accolades et utilisez l’accent grave (caractère d’échappement) pour placer les accolades dans une séquence d’échappement. Par exemple, pour créer une variable nommée « this{value}is » avec la valeur 1, tapez :

          C:\PS> ${this`{value`}is} = 1
          C:\PS> ${this`{value`}is}
          1

VARIABLES ET ÉTENDUE

Par défaut, les variables sont disponibles uniquement dans l’étendue dans laquelle elles sont créées.

Par exemple, une variable que vous créez dans une fonction est disponible uniquement dans la fonction. Une variable que vous créez dans un script est disponible uniquement dans le script (sauf si vous effectuez un appel de source de type « dot source » du script, ce qui l’ajoute à l’étendue actuelle).

Vous pouvez utiliser un modificateur d’étendue pour modifier l’étendue par défaut de la variable. L’expression suivante crée une variable nommée « Computers ». La variable a une étendue globale, même quand elle est créée dans un script ou une fonction.

            $global:computers = "Server01"

Pour plus d'informations, consultez about_Scopes.

ENREGISTREMENT DES VARIABLES

Les variables que vous créez sont disponibles uniquement dans la session dans laquelle vous les créez. Elles sont perdues quand vous fermez votre session.

Pour créer la variable dans chaque session Windows PowerShell que vous démarrez, ajoutez la variable à votre profil Windows PowerShell.

Par exemple, pour modifier la valeur de la variable $VerbosePreference dans chaque session Windows PowerShell, ajoutez la commande suivante à votre profil Windows PowerShell.

  $VerbosePreference = "Continue"

Vous pouvez ajouter cette commande à votre profil en ouvrant le fichier de profil dans un éditeur de texte, tel que le Bloc-notes. Pour plus d’informations sur les profils Windows PowerShell, consultez about_profiles.

LECTEUR VARIABLE:

Le fournisseur de variables Windows PowerShell crée un lecteur Variable: qui ressemble à un lecteur de système de fichiers et agit comme celui-ci, mais contient les variables dans votre session et leurs valeurs.

Pour passer au lecteur Variable: , tapez :

        set-location variable:
        
         (or "cd variable:")

Pour répertorier les éléments (variables) du lecteur Variable:, utilisez les applets de commande Get-Item ou Get-ChildItem. Exemple :

         get-childitem variable:
         (or "dir" or "ls")

Pour obtenir la valeur d’une variable particulière, utilisez la notation de système de fichiers pour spécifier le nom du lecteur et le nom de la variable. Par exemple, pour obtenir la variable automatique $PSCulture, utilisez la commande suivante.

         get-item variable:\PSCulture      

         Name                           Value
         ----                           -----
         PSCulture                      en-US        

Pour plus d’informations sur le lecteur Variable: et le fournisseur de variables Windows PowerShell, tapez « get-help variable ».

APPLETS DE COMMANDE POUR LES VARIABLES

Windows PowerShell inclut un ensemble d’applets de commande qui sont conçues pour gérer les variables.

         Cmdlet Name           Description
         -----------           -----------

         Clear-Variable        Deletes the value of a variable.
         Get-Variable          Gets the variables in the current console.
         New-Variable          Creates a new variable.
         Remove-Variable       Deletes a variable and its value.
         Set-Variable          Changes the value of a variable.

Pour obtenir de l’aide pour ces applets de commande, tapez : « Get-Help <nom_applet_de_commande> ».

VOIR AUSSI

about_Automatic_Variables

about_Environment_Variables

about_Preference_Variables

about_Profiles

about_Quoting_Rules

about_Scopes