Les Variables dans les modules en PowerShell
J'ai un script principal, où quelques constantes sont définies. J'ai alors d'un module (psm1) pour inclure des fonctions d'assistance. Les détails sont les suivants:
Dans le script principal, j'ai importé le module comme un objet:
$cud2ADhleper = Import-Module -Force $cud2ADhelperModule -AsCustomObject
Dans le module, j'ai deux variables,
[string]$SQLServer = $null
Function SetSQLServerAddr ([string] $name)
{
$SQLServer = $name
}
Function GetSQLServerAddr
{
return $SQLServer
}
Ma compréhension est que parce que je ne suis pas l'exportation de $SQLServer
du module, cette variable doit être local, et je devrais être en mesure de mettre/Obtenir.
Il s'avère autrement. Après j'ai appelé SetSQLServerAddr ([string] $name)
, puis callling GetSQLServerAddr
retourne $null. Qu'ai-je manqué?
Vous devez vous connecter pour publier un commentaire.
Qui crée une nouvelle local
$SQLServer
dans le champ d'application de cette fonction.Si vous voulez mettre à jour une variable au module (
.psm1
) champ d'application, alors vous devez préfixer le nom pour indiquer que:Pour en savoir plus sur les étendues de voir
get-help about_scopes
.