PowerShell 中的变量范围

Scope of variable in PowerShell

我想知道以下 PowerShell 脚本中变量 $crazy 的范围:

function Test1 { 
    Write-Host $crazy 
}  

function Main { 
    $crazy = Read-Host "Type anything" 
    Test1 
} 

Main 

我原以为 $crazy 仅在 Main 函数中可见,但令我惊讶的是,函数 Test1 能够访问它。我可以保证我的 PS 会话中没有先前声明的 $crazy 变量。

老实说我没有完全理解 about_scope 所以我使用 ISE 通过脚本调试并使用以下模式测试变量的范围 $<scope>:$crazy 并且变量没有甚至出现在我使用过的每个示波器中。

在这种情况下,$crazy 作用域为 Main 函数,因此它在 Main 内部可用,因此可用于 Main 调用的任何函数。如果您尝试从 Main 之外调用 $crazy,您会发现它尚未设置。有帮助吗?