いくつかの定数が定義されているメインスクリプトがあります。次に、ヘルパー関数を含めるモジュール(psm1)があります。詳細は次のとおりです。
メインスクリプトでは、モジュールをオブジェクトとしてインポートしました。
_$cud2ADhleper = Import-Module -Force $cud2ADhelperModule -AsCustomObject
_
モジュールには、2つの変数があります。
_[string]$SQLServer = $null
Function SetSQLServerAddr ([string] $name)
{
$SQLServer = $name
}
Function GetSQLServerAddr
{
return $SQLServer
}
_
私の理解では、モジュールから_$SQLServer
_をエクスポートしていないため、この変数はローカルであり、設定/取得できるはずです。
それ以外の場合は判明します。 SetSQLServerAddr ([string] $name)
を呼び出した後、GetSQLServerAddr
を呼び出すと$ nullが返されます。私は何を取りこぼしたか?
Function SetSQLServerAddr ([string] $name)
{
$SQLServer = $name
}
これにより、その関数のスコープ内に新しいlocal$SQLServer
が作成されます。
モジュール(.psm1
)スコープで変数を更新する場合は、名前にプレフィックスを付けて、次のことを示す必要があります。
Function SetSQLServerAddr ([string] $name)
{
$script:SQLServer = $name
}
スコープの詳細については、 get-help about_scopes
を参照してください。