通常,这是一个微不足道的问题,可以通过简单搜索大多数编程语言来回答,但在PowerShell中,这并不容易。
如果通过点源包含脚本或包含模块,它们的脚本变量被传输到调用脚本中,那么拥有全局变量的意义何在?
有人可以为我澄清一下吗?
不仅变量有作用域,函数定义也是如此。
全球化的好处是每个人都可以使用它们。假设您正在导入一个模块,该模块定义了几个函数,但您无法使用它们。
关于模块中的全局变量...我很少使用它们,除非它们可以控制某些行为,例如PS已经拥有的各种*Preference
变量。
顺便说一下,在点源脚本时,您不一定使范围全局化。点源只是在当前范围内执行脚本,而不是为脚本创建一个脚本。因此,当在函数中点采购某些内容时,您只会从该函数中的脚本中获取内容。