2
我想提供一个脚本块作为函数的参数。这个脚本块应该改变父代的局部变量,使用它的一个参数。这种情况如下:更改脚本块的父范围中的局部变量
## function definition
function test {
param([scriptblock]$sb)
$sb.Invoke(5)
}
## this is my local variable
$localVariable = 10
## update the local variable using a script block
test({ param($m) write-host "local: $localVariable"; $localVariable += 5 })
调用似乎可以看到局部变量(它打印10),但除了不传播到父范围。如何才能做到这一点?非常感谢!
好的,我应该更精确。该函数实际上是在另一个模块中定义的自定义类的ScriptMethod,并且方法调用位于脚本中...您的解决方案是否可以适应这种情况? – Sh4pe 2014-10-28 18:03:38
@ Sh4pe查看最新的答案。 – 2014-10-28 18:04:37
完美。有用。感谢您回答如此之快 – Sh4pe 2014-10-28 18:07:51