我有下面的一段代码,我试图访问try中定义的变量,但它不可访问,可以做些什么来解决它。如何访问Powershell中的try catch范围中定义的变量
try{
$X = get-X
}
catch
{
Manage exception
}
write-host $X
我有下面的一段代码,我试图访问try中定义的变量,但它不可访问,可以做些什么来解决它。如何访问Powershell中的try catch范围中定义的变量
try{
$X = get-X
}
catch
{
Manage exception
}
write-host $X
我只是碰到了这一点,它看起来像一个bug。在try块外声明变量并不能解决范围问题。只要您将$ a的try块值重置为您在输入try块之前的值。所以如果你想在执行try {}之后访问$ a,那么你需要将它作为$ global:在try {}块内部进行访问。
对于我这种回报所有的过程一样简单get-process
命令执行:
try
{
$a = get-process
}
catch
{
write-error "Some error occurred"
}
$a
由于@Christian笔记,它应该很好地工作,你有它的方式。如果$x
未被填充,则可能Get-X
不会返回任何内容,或者发生错误。
您可以随时与顶级声明变量起来的模式去:
$a = <default value, or $null>
try
{
$a = get-process
}
catch
{
write-error "Some error occurred"
}
$a
这个答案暗示OP的变量赋值存在问题,他'可以'访问该变量,但这不是他期望的值。 – SpellingD