PowerShell中的变量范围

时间:2017-02-06 14:25:31

标签: powershell powershell-v4.0 scoping

我想知道以下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测试变量的范围,并且变量甚至没有出现在每个范围内我用过。

1 个答案:

答案 0 :(得分:2)

在这种情况下,$crazy的范围限定为Main函数,因此它在Main内可用,因此可用于Main调用的任何函数。如果您尝试从$crazy以外的地方拨打Main,则会发现它尚未设置。这有帮助吗?