New-Variable
Crée une variable.
Syntaxe
New-Variable
[-Name] <String>
[[-Value] <Object>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Visibility <SessionStateEntryVisibility>]
[-Force]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet de commande New-Variable
crée une variable dans Windows PowerShell. Vous pouvez affecter une valeur à la variable lors de sa création ou lui attribuer ou modifier la valeur après sa création.
Vous pouvez utiliser les paramètres de New-Variable
pour définir les propriétés de la variable, définir l’étendue d’une variable et déterminer si les variables sont publiques ou privées.
En règle générale, vous créez une variable en tapant le nom de la variable et sa valeur, comme $Var = 3
, mais vous pouvez utiliser l’applet de commande New-Variable
pour utiliser ses paramètres.
Exemples
Exemple 1 : Créer une variable
New-Variable days
Cette commande crée une variable nommée days. Vous n’êtes pas obligé de taper le paramètre Name.
Exemple 2 : Créer une variable et l’affecter à une valeur
New-Variable -Name "zipcode" -Value 98033
Cette commande crée une variable nommée zipcode et lui affecte la valeur 98033.
Exemple 3 : Créer une variable avec l’option ReadOnly
PS C:\> New-Variable -Name Max -Value 256 -Option ReadOnly
PS C:\> New-Variable -Name max -Value 1024
New-Variable : A variable with name 'max' already exists.
At line:1 char:1
+ New-Variable -Name max -Value 1024
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceExists: (max:String) [New-Variable], SessionStateException
+ FullyQualifiedErrorId : VariableAlreadyExists,Microsoft.PowerShell.Commands.NewVariableCommand
PS C:\> New-Variable -Name max -Value 1024 -Force
Cet exemple montre comment utiliser l’option ReadOnly
de New-Variable
pour protéger une variable contre le remplacement d’une variable.
La première commande crée une variable nommée Max et définit sa valeur sur 256. Il utilise le paramètre Option
La deuxième commande tente de créer une deuxième variable portant le même nom. Cette commande renvoie une erreur, car l’option en lecture seule est définie sur la variable.
La troisième commande utilise le paramètre Forcer pour remplacer la protection en lecture seule sur la variable. Dans ce cas, la commande permettant de créer une variable portant le même nom réussit.
Exemple 4 : Affecter plusieurs options à une variable
New-Variable -Name 'TestVariable' -Value 'Test Value' -Option AllScope,Constant
Cet exemple crée une variable et affecte les options AllScope
et Constant
afin que la variable soit disponible dans l’étendue actuelle et toutes les nouvelles étendues créées et ne peuvent pas être modifiées ou supprimées.
Exemple 5 : Créer une variable privée
PS C:\> New-Variable -Name counter -Visibility Private
#Effect of private variable in a module.
PS C:\> Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
PS C:\> $counter
"Cannot access the variable '$counter' because it is a private variable"
At line:1 char:1
+ $counter
+ ~~~~~~~~
+ CategoryInfo : PermissionDenied: (counter:String) [], SessionStateException
+ FullyQualifiedErrorId : VariableIsPrivate
PS C:\> Get-Counter
Name Value
---- -----
Counter1 3.1415
...
Cette commande illustre le comportement d’une variable privée dans un module. Le module contient l’applet de commande Get-Counter
, qui a une variable privée nommée Counter. La commande utilise le paramètre visibilité
L’exemple de sortie montre le comportement d’une variable privée. L’utilisateur qui a chargé le module ne peut pas afficher ou modifier la valeur de la variable Counter, mais la variable Counter peut être lue et modifiée par les commandes du module.
Exemple 6 : Créer une variable avec un espace
PS C:\> New-Variable -Name 'with space' -Value 'abc123xyz'
PS C:\> Get-Variable -Name 'with space'
Name Value
---- -----
with space abc123xyz
PS C:\> ${with space}
abc123xyz
Cette commande montre que des variables avec des espaces peuvent être créées. Les variables sont accessibles à l’aide de l’applet de commande Get-Variable
ou directement en limitant une variable avec accolades.
Paramètres
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Description
Spécifie une description de la variable.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Force
Indique que l’applet de commande crée une variable portant le même nom qu’une variable en lecture seule existante.
Par défaut, vous pouvez remplacer une variable, sauf si la variable a une valeur d’option de ReadOnly
ou de Constant
. Pour plus d’informations, consultez le paramètre option
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Name
Spécifie un nom pour la nouvelle variable.
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Option
Spécifie la valeur de la propriété Options de la variable. Les valeurs acceptables pour ce paramètre sont les suivantes :
-
None
- Définit aucune option.None
est la valeur par défaut. -
ReadOnly
: peut être supprimé. Impossible de modifier, sauf en utilisant le paramètre force. -
Private
: la variable est disponible uniquement dans l’étendue actuelle. -
AllScope
: la variable est copiée dans toutes les nouvelles étendues créées. -
Constant
- Impossible de supprimer ou de modifier.Constant
est valide uniquement lorsque vous créez une variable. Vous ne pouvez pas modifier les options d’une variable existante enConstant
.
Ces valeurs sont définies comme une énumération basée sur des indicateurs. Vous pouvez combiner plusieurs valeurs pour définir plusieurs indicateurs à l’aide de ce paramètre. Les valeurs peuvent être transmises au paramètre Option en tant que tableau de valeurs ou sous forme de chaîne séparée par des virgules de ces valeurs. L’applet de commande combine les valeurs à l’aide d’une opération binary-OR. La transmission de valeurs en tant que tableau est l’option la plus simple et vous permet également d’utiliser la saisie semi-automatique sous forme de tabulation sur les valeurs.
Pour afficher la propriété Options de toutes les variables de la session, tapez Get-Variable | Format-Table -Property name, options -AutoSize
.
Type: | ScopedItemOptions |
Valeurs acceptées: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-PassThru
Retourne un objet représentant l’élément avec lequel vous travaillez. Par défaut, cette applet de commande ne génère aucune sortie.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Scope
Spécifie l’étendue de la nouvelle variable. Les valeurs acceptables pour ce paramètre sont les suivantes :
-
Global
: les variables créées dans l’étendue globale sont accessibles partout dans un processus PowerShell. -
Local
: l’étendue locale fait référence à l’étendue actuelle, il peut s’agir de n’importe quelle étendue en fonction du contexte. -
Script
: les variables créées dans l’étendue du script sont accessibles uniquement dans le fichier de script ou le module dans lequel ils sont créés. -
Private
: les variables créées dans l’étendue privée ne sont pas accessibles en dehors de l’étendue dans laquelle elles existent. Vous pouvez utiliser l’étendue privée pour créer une version privée d’un élément portant le même nom dans une autre étendue. - Nombre relatif à l’étendue actuelle (0 au nombre d’étendues, où 0 est l’étendue actuelle, 1 est son parent, 2 le parent de l’étendue parente, etc.). Les nombres négatifs ne peuvent pas être utilisés.
Local
est l’étendue par défaut lorsque le paramètre d’étendue n’est pas spécifié.
Pour plus d’informations, consultez about_Scopes.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Value
Spécifie la valeur initiale de la variable.
Type: | Object |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Visibility
Détermine si la variable est visible en dehors de la session dans laquelle elle a été créée. Ce paramètre est conçu pour être utilisé dans les scripts et les commandes qui seront remis à d’autres utilisateurs. Les valeurs acceptables pour ce paramètre sont les suivantes :
-
Public
: la variable est visible.Public
est la valeur par défaut. -
Private
: la variable n’est pas visible.
Lorsqu’une variable est privée, elle n’apparaît pas dans les listes de variables, telles que celles retournées par Get-Variable
, ou dans les affichages du lecteur Variable:
. Les commandes permettant de lire ou de modifier la valeur d’une variable privée retournent une erreur. Toutefois, l’utilisateur peut exécuter des commandes qui utilisent une variable privée si les commandes ont été écrites dans la session dans laquelle la variable a été définie.
Type: | SessionStateEntryVisibility |
Valeurs acceptées: | Public, Private |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger une valeur vers New-Variable
.
Sorties
None or System.Management.Automation.PSVariable
Lorsque vous utilisez le paramètre PassThru