如何在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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!