我无法理解script:
范围与global:
范围之间的差异,在脚本中使用 < /强>
有人可以给我一个例子,其中一个全局范围的变量保留它的值,而scipt范围的变量不?
答案 0 :(得分:2)
如有疑问,请阅读documentation:
全球:
Windows PowerShell启动时生效的范围。在全局范围内创建了Windows PowerShell启动时存在的变量和函数。这包括自动变量和首选变量。这还包括Windows PowerShell配置文件中的变量,别名和函数 [...]
脚本:
脚本文件运行时创建的范围。只有脚本中的命令在脚本范围内运行。对于脚本中的命令,脚本范围是本地范围。
示例:
PS C:\> $foo = 'a' PS C:\> Get-Content .\test.ps1 "global 1: $global:foo" "script 1: $script:foo" $foo = 'b' # <- this modifies $foo in the script scope "global 2: $global:foo" "script 2: $script:foo" $global:foo = 'c' # <- this modifies $foo in the global scope "global 3: $global:foo" "script 3: $script:foo" PS C:\> .\test.ps1 global 1: a script 1: global 2: a script 2: b global 3: c script 3: b PS C:\> $foo c