$var
我知道调用变量和$script:var
函数内部的区别。像这样:
function test()
{
$var = 1
$script:var = 2
}
test
if ($script:var -eq $var)
{
Write-Host "$var = $script:var"
}
但是我必须到处都写$script:var
才能不出错吗?还有其他好方法可以达到同样的效果吗?谢谢!
答案1
不,你根本没必要这么做。
在我使用 PowerShell 的十多年里,它并不是我真正需要的东西。然而,每个人的用例都不同。然而,根据你展示的内容,你的说法通常并不正确。我想不出需要它的日常用例。
通过阅读 Powershell 文档中有关函数、变量等的“范围”部分,您可以回答整个问题...
...以及这篇出色的文章。
如果要在当前范围之外进行操作,则应使用前缀进行定义。函数应该是黑盒,设置输入/输出。