PowerShell Set-Variable未处理ValueFromPipelineByPropertyName

时间:2017-04-14 18:04:48

标签: powershell

根据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的值所需的内容?

1 个答案:

答案 0 :(得分:1)

我在PowerShell UserVoice网站上针对此问题创建了this bug