从另一个powershell脚本加载variables

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

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

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

 .\Variables.ps1 $var1 $var2 

这工作如果我第一次运行。\ Variables.ps1但不是如果我只是运行Main.ps1。 我的环境是PowerShell ISE。 我究竟做错了什么?

Variables.ps1中声明的variables位于“Script Scope”中。 那就是你不能在声明它们的脚本范围之外看到它们。 将Variables.ps1中的variables引入main.ps1范围的一种方法是“点源”Variables.ps1。 实际上,这在main.ps1的作用域中运行Variables.ps1。 要做到这一点,只需在调用脚本之前粘贴一段时间和空间:

 . .\Variables.ps1 $var1 $var2 
 $Global:var1 = "1" $Global:var2 = "2" 

这工作。 是否比“点源”更好或更差取决于您的具体要求。

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

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

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