从另一个PowerShell脚本加载变量

Gre*_*reg 51 powershell powershell-2.0

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

$var1 = "1"
$var2 = "2"
Run Code Online (Sandbox Code Playgroud)

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

.\Variables.ps1
$var1
$var2
Run Code Online (Sandbox Code Playgroud)

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

zda*_*dan 87

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

. .\Variables.ps1
$var1
$var2
Run Code Online (Sandbox Code Playgroud)


dan*_*gph 32

# var.ps1
$Global:var1 = "1"
$Global:var2 = "2"
Run Code Online (Sandbox Code Playgroud)

这有效.是否比"点源"更好或更差可能取决于您的具体要求.

PS > .\var.ps1
PS > $var1
1
PS > $var2
2
PS >
Run Code Online (Sandbox Code Playgroud)