Set-Variable
Définit la valeur d'une variable. Crée la variable si celle avec le nom demandé n'existe pas.
Syntax
Set-Variable
[-Name] <String[]>
[[-Value] <Object>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Description <String>]
[-Option <ScopedItemOptions>]
[-Force]
[-Visibility <SessionStateEntryVisibility>]
[-PassThru]
[-Scope <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
L’applet Set-Variable
de commande affecte une valeur à une variable spécifiée ou modifie la valeur actuelle. Si la variable n'existe pas, l'applet de commande la crée.
Exemples
Exemple 1 : Définir une variable et obtenir sa valeur
Ces commandes définissent la valeur de la $desc
variable sur A description
, puis obtiennent la valeur de la variable.
Set-Variable -Name "desc" -Value "A description"
Get-Variable -Name "desc"
Name Value
---- -----
desc A description
Exemple 2 : Définir une variable globale en lecture seule
Cet exemple crée une variable globale en lecture seule qui contient tous les processus sur le système, puis affiche toutes les propriétés de la variable.
Set-Variable -Name "processes" -Value (Get-Process) -Option constant -Scope global -Description "All processes" -PassThru |
Format-List -Property *
La commande utilise l’applet Set-Variable
de commande pour créer la variable. Il utilise le paramètre PassThru pour créer un objet représentant la nouvelle variable et l’opérateur de pipeline (|
) pour passer l’objet à l’applet de Format-List
commande. Il utilise le paramètre Property de Format-List
avec la valeur all (*
) pour afficher toutes les propriétés de la variable nouvellement créée.
La valeur, , (Get-Process)
est placée entre parenthèses pour s’assurer qu’elle est exécutée avant d’être stockée dans la variable. Sinon, la variable contient les mots Get-Process
.
Exemple 3 : Comprendre les variables publiques et privées
Cet exemple montre comment modifier la visibilité d’une variable en Private
. Cette variable peut être lue et modifiée par les scripts avec les autorisations requises, mais elle n'est pas visible par l'utilisateur.
New-Variable -Name "counter" -Visibility Public -Value 26
$Counter
26
Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26
Set-Variable -Name "counter" -Visibility Private
Get-Variable c*
Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
$counter
"Cannot access the variable '$counter' because it is a private variable"
.\use-counter.ps1
#Commands completed successfully.
Cette commande montre comment remplacer la visibilité d’une variable par Private. Cette variable peut être lue et modifiée par les scripts avec les autorisations requises, mais elle n'est pas visible par l'utilisateur.
Paramètres
-Confirm
Vous demande une confirmation avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Spécifie la description de la variable.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Spécifie un tableau d’éléments que cette applet de commande exclut de l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que *.txt
.
Les caractères génériques sont autorisés.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Vous permet de créer une variable portant le même nom qu'une variable en lecture seule existante ou de modifier la valeur d'une variable en lecture seule.
Par défaut, vous pouvez remplacer une variable, sauf si la variable a une valeur d’option ou ReadOnly
Constant
. Pour plus d’informations, consultez le paramètre Option .
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Spécifie un tableau d’éléments que cette applet de commande inclut dans l’opération. La valeur de ce paramètre qualifie le paramètre Name . Entrez un nom ou un modèle de nom, par exemple c*
. Les caractères génériques sont autorisés.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Name
Spécifie le nom de la variable.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Option
Spécifie la valeur de la propriété Options de la variable.
Les valeurs autorisées sont :
None
: ne définit aucune option. (None
est la valeur par défaut.)ReadOnly
: peut être supprimé. Ne peut pas être modifié, sauf en utilisant le paramètre Force.Constant
: ne peut pas être supprimé ou modifié.Constant
est valide uniquement lorsque vous créez une variable. Vous ne pouvez pas modifier les options d’une variable existante enConstant
.Private
: la variable est disponible uniquement dans l’étendue actuelle.AllScope
: la variable est copiée dans toutes les nouvelles étendues créées.
Ces valeurs sont définies comme une énumération basée sur un indicateur. Vous pouvez combiner plusieurs valeurs pour définir plusieurs indicateurs à l’aide de ce paramètre. Les valeurs peuvent être passées au paramètre Option sous la forme d’un tableau de valeurs ou d’une 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 par tabulation sur les valeurs.
Type: | ScopedItemOptions |
Accepted values: | None, ReadOnly, Constant, Private, AllScope, Unspecified |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Retourne un objet représentant la nouvelle variable. Par défaut, cette applet de commande ne génère aucun résultat.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Spécifie l’étendue de la variable. Les valeurs acceptables pour ce paramètre sont les suivantes :
Global
Local
Script
Private
- Nombre relatif à l’étendue actuelle (de 0 au nombre d’étendues, où 0 est l’étendue actuelle et 1 est son parent).
Local
est la valeur par défaut.
Pour plus d’informations, consultez about_Scopes.
Type: | String |
Position: | Named |
Default value: | Local |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Spécifie la valeur de la variable.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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 autorisées sont :
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
, ni dans les affichages du lecteur Variable : . Les commandes pour lire ou 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 |
Accepted values: | Public, Private |
Position: | Named |
Default value: | Public |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entrées
Vous pouvez diriger un objet qui représente la valeur de la variable vers Set-Variable
.
Sorties
None or System.Management.Automation.PSVariable
Lorsque vous utilisez le paramètre PassThru , Set-Variable
génère un objet System.Management.Automation.PSVariable représentant la variable nouvelle ou modifiée.
Sinon, cette applet de commande ne génère aucune sortie.