Powershell 如何在Invoke命令-ArgumentList中通过引用传递变量

Powershell 如何在Invoke命令-ArgumentList中通过引用传递变量,powershell,pass-by-reference,Powershell,Pass By Reference,我想传入$re并在{}中修改它的值。实现这一点的正确语法是什么?上述代码发出错误。您不需要通过ref传递var,只需将icm的结果分配给$re: $re = 0 Invoke-Command $server { #param([ref]$r) ... $r = 1 } -ArgumentList [ref]$re 使用PS版本>=3,您可以 $re = 0 $re=icm -ComputerName $server -ScriptBlock{param($r) $r+1

我想传入$re并在{}中修改它的值。实现这一点的正确语法是什么?上述代码发出错误。

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

$re = 0
Invoke-Command $server {
    #param([ref]$r)
    ...
    $r = 1
} -ArgumentList [ref]$re
使用PS版本>=3,您可以

$re = 0
$re=icm -ComputerName $server -ScriptBlock{param($r) $r+1} -ArgumentList $re    
$re
顺便说一句,
{}
称为脚本块

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