$var =@( @{id="1"; name="abc"; age="1"; },
@{id="2"; name="def"; age="2"; } );
$properties = @("ID","Name","Age") ;
$format = @();
foreach ($p in $properties)
{
$format += @{label=$p ; Expression = {$_.$p}} #$_.$p is not working!
}
$var |% { [PSCustomObject]$_ } | ft $format
在上面的例子中,我想通过变量名访问每个对象的属性。但是它不能像预期的那样工作。那么在我的情况下,如何使其正常工作呢?
Expression = {$_.$p}
工作正常吗?
Expression = $p
。 - user4003407Expression
中使用脚本块,那么你可以使用Expression = &{$p=$p; {$_.$p}.GetNewClosure()}
。请注意,这里的翻译保持了原文的意思和语法结构,并力求让内容更加通俗易懂。 - user4003407GetNewClosure()
的时间与脚本块大小无关。而[ScriptBlock]::Create()
应该会随着脚本块大小的增加而花费更多的时间。 - user4003407