如何将Name NoteProperty添加到对象?

jra*_*ara 5 powershell powershell-2.0

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

$a = "This", "Is", "a", "cat"
$a | Add-Member -type NoteProperty -name Name  
$a
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

预期的产出是:

Name
----
This
Is
a
cat
Run Code Online (Sandbox Code Playgroud)

jha*_*amm 5

下面是一个示例,说明如何以 $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}
Run Code Online (Sandbox Code Playgroud)

我将输出通过管道传输到 | ft -auto 缩小列以很好地适应这里。

Value Name   Note
----- ----   ----
This  String Value
Is    String Value
a     String Value
cat   String Value
Run Code Online (Sandbox Code Playgroud)

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

Name
----
This
Is
a
cat
Run Code Online (Sandbox Code Playgroud)


Rom*_*min 5

这是修正问题的答案:

$a = "This", "Is", "a", "cat"
$a | Select-Object @{Name='Name'; Expression={$_}}
Run Code Online (Sandbox Code Playgroud)

根据要求输出

Name
----
This
Is
a
cat
Run Code Online (Sandbox Code Playgroud)