从另一个PowerShell脚本加载变量

时间:2009-12-08 01:57:27

标签: powershell powershell-v2.0

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

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

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

.\Variables.ps1
$var1
$var2

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

3 个答案:

答案 0 :(得分:81)

Variables.ps1中声明的变量位于“脚本范围”。那就是你不能在声明它们的脚本范围之外看到它们。将Variables.ps1中的变量纳入main.ps1范围的一种方法是“dot sourceVariables.ps1。实际上,这会在Variables.ps1的范围内运行main.ps1。要做到这一点,只需在调用脚本之前粘贴句点和空格:

. .\Variables.ps1
$var1
$var2

答案 1 :(得分:30)

# var.ps1
$Global:var1 = "1"
$Global:var2 = "2"

这很有效。是否比“点源”更好或更差可能取决于您的具体要求。

PS > .\var.ps1
PS > $var1
1
PS > $var2
2
PS >

答案 2 :(得分:0)

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

echo "Test"
. .\Variables.ps1
echo $var1
echo $var2