別のスクリプトファイルからスクリプト変数を参照する方法は2通りあります。ここでは、2つの基本的な例は、以下のとおりです。ドットソース変数とグローバル変数
1ドットソース
Variables.ps1
. .\Variables.ps1
Copy-Item -Path $Source -Destination $Destination -Force
2.グローバル変数
Variables.ps1
$Source = "source"
$Destination = "dest"
Execute.ps1
$Global:Source = "source"
$Global:Destination = "dest"
Execute.ps1
.\Variables.ps1
Copy-Item -Path $Source -Destination $Destination -Force
私が研究を行ったが、他の上のいずれかを使用するように決定的な理由を見つけるためにまだ持っています。これらの方法を使用する際に練習すべき制限や注意がありますか?どんな入力も大歓迎です。あなたの時間をありがとう。
EDIT:mklement0 @
は、グローバル変数の上にドットソーシングを使用する理由として素晴らしい答えを与えました。私はまだこの議論を開いたままにしたいと思う。別の視点がある場合、またはグローバル変数を使用する方がより有益であるとの説明があれば、それを聞いてそれに応じて議決権を行使することができます。ありがとうございました。
興味深い。今では、変数スクリプトファイルが複数のスクリプトファイルによって参照されているときにドットソーシングを提案しますか?グローバル変数を使用する方がより有益でしょうか? – Ethilium
@Ethilium:はい、これらのスクリプトファイルには、変数に依存するスクリプトのコンテキストで明示的にインテントを伝える変数ファイルが明示的にドットソースされ、望ましくない副作用が回避されます。正直なところ、私は、グローバル変数が正しい選択であるユースケースを認識していません(しかし、そのようなケースがある場合は、それらについて聞きたいです)。次の抽象レベルは、スクリプトが_import_する_module_を作成することです。 – mklement0
よく説明して簡潔な答えをいただきありがとうございます。私はモジュールの作成についても詳しく見ていきます。正解とマークする。 – Ethilium