如何将Name NoteProperty添加到对象?

时间:2011-10-11 08:49:34

标签: powershell powershell-v2.0

如何为对象添加Name NoteProperty?我试过了:

$a = "This", "Is", "a", "cat"
$a | Add-Member -type NoteProperty -name Name  
$a

但这似乎不起作用。

预期输出为:

Name
----
This
Is
a
cat

2 个答案:

答案 0 :(得分:5)

这是修正问题的答案:

$a = "This", "Is", "a", "cat"
$a | Select-Object @{Name='Name'; Expression={$_}}

根据要求输出

Name
----
This
Is
a
cat

答案 1 :(得分:4)

下面是一个示例,说明如何在$ a中将每个值作为示例,将其转换为具有Name和Value属性的PSObject以及使用Add-Member cmdlet。 `是为了延续线。因为在管道中调用Add-Member,所以-passThru属性用于传递具有新成员的对象。

$a | %{ new-object psobject -property @{Name="String"; Value=$_}} `
   | %{ Add-Member -inputObject $_ -passThru -type NoteProperty -name Note -Value Value}

我将输出传输到| ft -auto缩小列以适应这里。

Value Name   Note
----- ----   ----
This  String Value
Is    String Value
a     String Value
cat   String Value

回答更新问题的另一种方法: $a | %{new-object psobject -p @{Name=$_} 预期输出匹配:

Name
----
This
Is
a
cat