58

我有几个可以重用变量的脚本,所以我想在他们自己的 Variables.ps1 脚本中隔离变量,即

$var1 = "1"
$var2 = "2"

我正在尝试加载这些变量,然后在 Main.ps1 脚本中将它们打印出来,如下所示:

.\Variables.ps1
$var1
$var2

如果我第一次运行 .\Variables.ps1,这将有效,但如果我只运行 Main.ps1,则无效。我的环境是 PowerShell ISE。我究竟做错了什么?

4

3 回答 3

99

中声明的变量Variables.ps1位于“脚本范围”。也就是说,您无法在声明它们的脚本范围之外看到它们。将变量带入Variables.ps1范围的一种方法main.ps1是“点源Variables.ps1。这实际上Variables.ps1main.ps1. 为此,只需在调用脚本之前添加句点和空格:

. .\Variables.ps1
$var1
$var2
于 2009-12-08T02:43:15.753 回答
40
# var.ps1
$Global:var1 = "1"
$Global:var2 = "2"

这行得通。它是否比“点源”更好或更差可能取决于您的具体要求。

PS > .\var.ps1
PS > $var1
1
PS > $var2
2
PS >
于 2009-12-08T02:52:02.037 回答
-1

只是为了确保正确性......试试这个......在 main.ps1

echo "Test"
. .\Variables.ps1
echo $var1
echo $var2
于 2009-12-08T02:13:11.850 回答