我使用PowerShell 5,如果这是相关的PowerShell:管道物体进入管道对象
当管道中添加一个属性到当前项目:
我不能引用$ _直到我把它喂进另一个管道。 为什么?
# make some objects to pass around
$test = (0..3) | %{[pscustomobject]@{key1="v$_.1";key2="v$_.2"} }
# GM = TypeName: System.Management.Automation.PSCustomObject
# trying to use the current pipeline object
$test | Add-Member @{key3=$_.key1}
$test | ft *
key1 key2 key3
---- ---- ----
v0.1 v0.2
v1.1 v1.2
v2.1 v2.2
v3.1 v3.2
# try again, this time taking the current pipeline object...
#... and then putting it into another identical looking pipeline
$test | %{ $_ | Add-Member @{key4=$_.key1} }
$test | ft *
key1 key2 key3 key4
---- ---- ---- ----
v0.1 v0.2 v0.1
v1.1 v1.2 v1.1
v2.1 v2.2 v2.1
v3.1 v3.2 v3.1
我怀疑这可能是第一个将自动意味着什么,我还没有告诉无形/隐含功能转嫁$ PSItem。
在管道启动之前评估所有参数。 '[pscustomobject] @ {key1 ='其他'} | %{$ test | Add-Member @ {key3 = $ _。key1}}'。 – PetSerAl