Laden Sie Variablen aus einem anderen PowerShell -Skript
-
16-09-2019 - |
Frage
Ich habe mehrere Skripte, die Variablen wiederverwenden könnten. Ich möchte Variablen in ihren eigenen Variablen isolieren.
$var1 = "1"
$var2 = "2"
Ich versuche diese Variablen zu laden und drucken Sie sie dann im main.ps1 -Skript wie folgt aus:
.\Variables.ps1
$var1
$var2
Dies funktioniert, wenn ich zum ersten Mal ausgeführt werde. Variablen.ps1, aber nicht, wenn ich gerade main.ps1 ausführe. Meine Umgebung ist PowerShell Ise. Was mache ich falsch?
Lösung
Die Variablen deklarierten in Variables.ps1
sind bei "Skript Scope". Das heißt, Sie können sie nicht außerhalb des Rahmens des Skripts sehen, das sie erklärt. Eine Möglichkeit, die Variablen einzubringen Variables.ps1
in den Umfang von main.ps1
ist zu "Punktquelle" Variables.ps1
. Dies läuft tatsächlich Variables.ps1
im Rahmen des Rahmens von main.ps1
. Dabei kleben Sie dazu einfach einen Zeitraum und einen Platz vor dem Aufruf des Skripts:
. .\Variables.ps1
$var1
$var2
Andere Tipps
# var.ps1
$Global:var1 = "1"
$Global:var2 = "2"
Das funktioniert. Ob es besser oder schlechter ist als "Punktbeschaffung", hängt wahrscheinlich von Ihren spezifischen Anforderungen ab.
PS > .\var.ps1
PS > $var1
1
PS > $var2
2
PS >
Nur um die Korrektheit zu gewährleisten ... Versuchen Sie dies ... in main.ps1
echo "Test"
. .\Variables.ps1
echo $var1
echo $var2