通常情况下,这是一个简单的问题,可以通过简单搜索大多数编程语言来解决,但在PowerShell中,它并不那么容易。
如果通过点源包含脚本或包含模块,他们的脚本变量会转移到调用脚本中,而不是具有全局变量的点吗?
有人可以为我澄清一下吗?
答案 0 :(得分:3)
这不仅是具有范围的变量,也是函数定义。
让事物全球化的好处是每个人都可以使用它们。想象一下,您正在导入一个定义了一些函数的模块,但您无法使用它们。
关于模块中的全局变量...我很少使用它们,除非它们可以控制某些行为,例如PS已经存在的各种*Preference
变量。
顺便说一下,在点源脚本时,你并没有必要使范围全局化。点源只是在当前范围中执行脚本,而不是为脚本创建一个脚本。因此,当在函数中点源时,只能在该函数中从脚本中获取内容。