Powershell可变范围

时间:2016-08-25 21:58:53

标签: powershell variables scope global-variables

我无法理解script:范围与global:范围之间的差异,在脚本中使用 < /强>

有人可以给我一个例子,其中一个全局范围的变量保留它的值,而scipt范围的变量

1 个答案:

答案 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