gpt4 book ai didi

powershell - 点源变量VS全局变量

转载 作者:行者123 更新时间:2023-12-02 23:57:05 24 4
gpt4 key购买 nike

我有两种从单独的脚本文件引用脚本变量的方法。这是两个基本示例:

1.点源
Variables.ps1

$Source = "source"  
$Destination = "dest"

Execute.ps1
. .\Variables.ps1  
Copy-Item -Path $Source -Destination $Destination -Force

2.全局变量
Variables.ps1
$Global:Source = "source"  
$Global:Destination = "dest"

Execute.ps1
.\Variables.ps1  
Copy-Item -Path $Source -Destination $Destination -Force

我已经做过研究,但还没有找到一个明确的理由来使用一个。使用这些方法时应注意哪些限制或注意事项?任何输入,不胜感激。感谢您的时间。

编辑:

@ mklement0为为什么对全局变量使用点源提供了一个很好的答案。我很乐意继续进行此讨论。如果还有其他观点,或者对使用全局变量的时间进行解释更有益,那么我将乐于听到并进行相应的投票。谢谢。

最佳答案

我建议您使用点源,而没有显式的全局变量(方法1):

这样,需要刻意的努力将变量添加到当前范围。请注意,点源将变量添加到当前范围,该范围可以是当前 session 的全局范围,也可以不是当前 session 的全局范围(例如,子范围是通过调用脚本(无点源)和带有&的脚本块创建的)。

相比之下,使用全局变量(方法2)会创建 session 全局变量,而与调用方法无关,因此,即使脚本的偶然,非基于点的源调用也最终会更改全局状态。

关于powershell - 点源变量VS全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42380181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com