Birkaç sabitin tanımlandığı ana bir komut dosyası var. Daha sonra yardımcı işlevler eklemek için bir modül (psm1) var. detaylar:PowerShell'deki modüllerdeki değişkenler
ana komut, ben bir nesne olarak modülü ithal var: modülde
$cud2ADhleper = Import-Module -Force $cud2ADhelperModule -AsCustomObject
, ben iki değişken,
[string]$SQLServer = $null
Function SetSQLServerAddr ([string] $name)
{
$SQLServer = $name
}
Function GetSQLServerAddr
{
return $SQLServer
}
Benim anlayış olduğunu çünkü Modülden $SQLServer
dışa aktarmıyorum, bu değişken yerel olmalı ve Set/Get onu yapabilmeli.
Aksi halde ortaya çıkıyor. SetSQLServerAddr ([string] $name)
'u aradıktan sonra GetSQLServerAddr
'un kalması $ null değerini döndürür. Ne kaçırdım? Bu fonksiyonun kapsamında yeni yerel$SQLServer
oluşturur
Her yerde baktım ve about_scopes hakkında okudum, ancak modülde tanımlanmış bir değişkenin, modül içindeki bir fonksiyonda betik kapsamını kullanarak ayarlanabileceğinin hala bana açık olmadığı açıktı. Komut dosyası kapsamı, bir modül bağlamında bir yanlış isim olduğu ve modül kapsamı veya bunun gibi bir şey olarak adlandırılması gerektiği gibi ses çıkarır. Cevabınız için teşekkür ederim! –
@ChrisMagnuson Adın harika olmadığını kabul ediyorum, ancak mantıklı ("normal" komut dosyasından gelen fark, modül durumuna, arayan kişiye döndükten sonra devam etmesidir). – Richard