Comment modifier la variable de portée parent en utilisant Powershell
Je suis assez nouveau dans powershell, et je suis juste de ne pas obtenir de la manière de modifier une variable dans la portée parent:
$val = 0
function foo()
{
$val = 10
}
foo
write "The number is: $val"
Quand je le lance j'obtiens:
The number is: 0
Je voudrais qu'il soit de 10. Mais powershell est la création d'une nouvelle variable qui se cache celui de la portée parent.
J'ai essayé, sans succès (selon les documents):
$script:$val = 10
$global:$val = 10
$script:$val = 10
Mais ce n'est pas le même 'compiler' pour ainsi dire.
Ce qui me manque?
source d'informationauteur C Johnson
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin d'utiliser la portée globale. Une variable avec le même nom pourrait avoir été déjà exister dans la coque de la console et vous pouvez mettre à jour à la place. Utiliser le script champ d'application du modificateur. Lors de l'utilisation d'un modificateur de portée vous n'incluez pas le signe " $ " dans le nom de la variable.
$script:val=10
Je sais que c'est fou vieux, mais j'ai eu une question similaire, et trouvé ce post dans ma recherche et je voulais partager la réponse que j'ai trouvé:
Plus d'informations peuvent être trouvées dans le Microsoft Docs article Sur Les Étendues.
Permettez-moi de souligner une troisième alternative, même si la réponse a déjà été fait. Si vous souhaitez modifier une variable, n'hésitez pas à le passer par référence et de travailler avec elle de cette façon.
Revient:
Si vous voulez l'utiliser, alors vous pourriez faire quelque chose comme ceci: