根据documentation Set-Variable
-Name
和-Value
两者都支持ValueFromPipelineByPropertyName,但以下代码似乎没有按预期工作:
[PSCustomObject]@{
name="Test"
value="1234"
} | Set-Variable -Force
$Test
结果是:
name value
---- -----
Test 1234
如果我使用ForEach-Object而得到了我的期望:
[PSCustomObject]@{
name="Test"
value="1234"
} | ForEach-Object {
Set-Variable -Name $_.Name -Value $_.Value -Force
}
$Test
结果是:
1234
我注意到-Value
也支持不使用属性名称的ValueFromPipeline,可能与此行为有关。
我是否遗漏了Set-Variable
按属性名称从管道接受参数-Name
和-Value
的值所需的内容?