如何在trap内更新trap外的变量,今天算是困扰了我一会了。先看下面的脚本:
$count=0
1..3 | foreach {
trap {
$count++
"捕获到错误 count = $count"
continue
}
1/$null
}
"最终的 count = $count"
输出为:
捕获到错误 count = 1 捕获到错误 count = 1 捕获到错误 count = 1 最终的 count = 0
显然这不是我期望的,我期望的是统计捕获的错误数。怎么改呢?在第4行后插入:
Set-Variable -Name 'count' -Value $count -Scope 1
原因:PowerShell的变量存在作用域,默认低作用域对高作用域只有读权限,如果要从低作用域更改高作用域变量,需要使用命令:Set-Variable,并逐层递加指定作用域(Scope)。
本文链接: https://www.pstips.net/modify-variable-outer-trap.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
