【问题标题】:Powershell Variable ScopesPowershell 变量范围
【发布时间】:2016-08-25 21:58:52
【问题描述】:

我很难理解script: 范围和global: 范围之间的区别,在使用它们时 在脚本中

谁能给我一个例子,其中一个全局范围的变量保留它的值,而 scipt 范围的变量

【问题讨论】:

    标签: powershell variables scope global-variables


    【解决方案1】:

    如有疑问,请阅读documentation

    全球:
    Windows PowerShell 启动时生效的范围。 Windows PowerShell 启动时存在的变量和函数已在全局范围内创建。这包括自动变量和偏好变量。这还包括 Windows PowerShell 配置文件中的变量、别名和函数。
    [...]
    脚本:
    脚本文件运行时创建的范围。只有脚本中的命令在脚本范围内运行。对于脚本中的命令,脚本范围是本地范围。

    例子:

    PS C:\> $foo = 'a'
    PS C:\> 获取内容 .\test.ps1
    “全球 1:$ 全球:富”
    “脚本 1:$ 脚本:foo”
    $foo = 'b' #  .\test.ps1
    全局1:一个
    脚本1:
    全局 2:一个
    脚本 2:b
    全局 3:c
    脚本 3:b
    PS C:\> $foo
    c

    【讨论】:

    • 我当然读过。还是不明白。问题是:在脚本中同时使用它们是否有区别。您在示例中没有这样做。
    • 嗯...是的,我做到了。
    • 真的吗?您确实在脚本之外分配了“a”。
    • 而且您没有在该脚本中使用 $script:abc = "a" 或 $global:xyz = "b" 。我想了解,如果它有所作为,如果我在脚本中分配(!)一个变量(!),脚本:-scope 或全局:-scope。
    • 你认为你可以自己测试这样简单的事情吗?我愿意解释一些东西,但我绝对不会用勺子喂你文档。
    猜你喜欢
    • 2017-06-20
    • 2012-03-08
    • 2015-05-02
    • 2014-09-24
    • 1970-01-01
    • 2015-07-02
    • 2014-09-19
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多