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?

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top