如何在Invoke-Command -ArgumentList中通过引用传递变量

时间:2014-11-26 11:48:07

标签: powershell pass-by-reference

$re = 0
Invoke-Command $server {
    #param([ref]$r)
    ...
    $r = 1
} -ArgumentList [ref]$re

我想传入$ re并在{}中修改其值。实现此目的的正确语法是什么?上面的代码会发出错误。

1 个答案:

答案 0 :(得分:2)

您不需要通过ref传递var,只需将icm的结果分配给$ re:

$re = 0
$re=icm -ComputerName $server -ScriptBlock{param($r) $r+1} -ArgumentList $re    
$re

PS版> = 3你可以做

$re=icm -ComputerName $server -ScriptBlock{$using:re +1} 

BTW {}被称为脚本块