Définit la valeur d'une variable. Crée la variable s'il n'existe aucune variable portant le nom demandé.

Syntaxe

Set-Variable [-Name] <string[]> [[-Value] <Object>] [-Description <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Option {<None> | <ReadOnly> | <Constant> | <Private> | <AllScope>}] [-PassThru] [-Scope <string>] [-Visibility {<Public> | <Private>}] [-Confirmer] [-WhatIf] [<CommonParameters>]

Description

L'applet de commande Set-Variable attribue 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.

Paramètres

-Description <string>

Spécifie la description de la variable.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Exclude <string[]>

Omet les éléments spécifiés. 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.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-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 celle-ci a la valeur d'option « ReadOnly » ou « Constant ». Pour plus d'informations, consultez le paramètre Option.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Include <string[]>

Modifie uniquement les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Name. Entrez un nom ou un modèle de nom, tel que « c* ». Les caractères génériques sont autorisés.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Name <string[]>

Spécifie le nom de la variable.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-Option <ScopedItemOptions>

Modifie la valeur de la propriété Options de la variable. Les valeurs valides sont :

-- None : ne définit pas d'options. (« None » est la valeur par défaut.)

-- ReadOnly : les propriétés de la variable ne peuvent pas être modifiées, sauf en utilisant le paramètre Force. Vous pouvez utiliser Remove-Variable pour supprimer la variable.

-- Constant : la variable ne peut pas être supprimée et ses propriétés ne peuvent pas être modifiées. La valeur « Constant » est disponible uniquement lorsque vous créez un alias. Vous ne pouvez pas attribuer la valeur « Constant » à l'option d'une variable existante.

-- Private : la variable est uniquement disponible dans la portée spécifiée par le paramètre Scope. Elle est héritée par les portées enfants.

-- AllScope : la variable est copiée vers toutes les nouvelles portées qui sont créées.

Pour consulter la propriété Options des variables, tapez « get-variable | Format-Table -property Name, Options -autosize ».

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-PassThru

Retourne un objet représentant la nouvelle variable. Par défaut, cette applet de commande ne génère aucune sortie.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Scope <string>

Détermine la portée de la variable. Les valeurs valides sont « Global », « Local » ou « Script », ou un nombre relatif à la portée actuelle (0 jusqu'au nombre de portées, où 0 est la portée actuelle et 1 son parent). « Local » est la valeur par défaut. Pour plus d'informations, consultez about_Scopes.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Value <Object>

Spécifie la valeur de la variable.

Obligatoire ?

false

Position ?

2

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue, ByPropertyName)

Accepter les caractères génériques ?

false

-Visibility <SessionStateEntryVisibility>

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 une utilisation dans les scripts et commandes qui sont remis à d'autres utilisateurs.

Les valeurs valides 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 visant à lire ou modifier la valeur d'une variable privée retournent une erreur. Néanmoins, l'utilisateur peut exécuter des commandes qui utilisent une variable privée si ces commandes ont été écrites dans la session dans laquelle la variable a été définie.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Public

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Confirmer

Vous invite à confirmer l'exécution de la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-WhatIf

Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.Object

Vous pouvez diriger un objet représentant la valeur de la variable vers Set-Variable.

Sorties

Aucun ou 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.

Exemple 1

C:\PS>set-variable -name desc -value "A description"

C:\PS>get-variable -name desc

Description
-----------
Ces commandes définissent la valeur de la variable « desc » sur « A description », puis obtiennent la valeur de la variable.






Exemple 2

C:\PS>set-variable -name processes -value (Get-Process) -option constant -scope global -description "All processes" -passthru | format-list -property *

Description
-----------
Cette commande 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.

La commande utilise l'applet de commande Set-Variable pour créer la variable. Elle utilise le paramètre PassThru pour créer un objet représentant la nouvelle variable, et elle utilise l'opérateur de pipeline (|) pour passer l'objet à l'applet de commande Format-List. Elle utilise le paramètre Property de Format-List avec la valeur visant à tout inclure (*) 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

C:\PS># set-variable -name counter -visibility private

C:\PS> new-variable -name counter -visibility public -value 26

C:\PS> $counter
26

C:\PS> get-variable c*

Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}
Counter 26

C:\PS> set-variable -name counter -visibility private

C:\PS> get-variable c*

Name Value
---- -----
Culture en-US
ConsoleFileName
ConfirmPreference High
CommandLineParameters {}

C:\PS> $counter
"Cannot access the variable '$counter' because it is a private variable"

C:\PS> .\use-counter.ps1
Commands completed successfully.

Description
-----------
Cette commande montre comment appliquer la visibilité privée (« Private ») à une variable. Cette variable peut être lue et modifiée par des scripts, sous réserve des autorisations requises, mais elle n'est pas visible à l'utilisateur.

L'exemple de sortie montre la différence de comportement entre variables publiques et privées.






Voir aussi




Table des matières