在PowerShell

时间:2016-10-27 21:52:38

标签: powershell

我使用PowerShell获取作为PSObject返回的JSON内容,这样当我想在对象中调用属性的值时,我可以通过调用变量来获取值:

$endpoint.authorization

但我想在现有授权属性中添加一个新属性,最终看起来像:

$endpoint.authorization.parameters.username

我已经发现我可以使用Select和Add-Member cmdlet来管道变量,但是当我再次调用原始变量时,它看起来并没有做任何事情。这是我的代码的样子:

$endpoint | Select -Property "authorization" | Add-Member -NotePropertyName "parameters.username" -NotePropertyValue "test" 

当我在该行代码之后检查它时,端点变量似乎没有任何变化。必须有一些我不知道的简单,但有关如何添加新属性作为现有属性的子属性的任何想法?

1 个答案:

答案 0 :(得分:1)

选择正在使用您指定的属性构建一个新的[PSCustomObject],向其添加属性,然后将其丢弃。

引用属性会返回一个值,因此您需要向授权属性添加一些内容,然后向其添加内容:

.

或者你可以通过构建你想要添加的东西,然后添加它来一次性完成它,例如

$endpoint = "{'authorization':{}}" | ConvertFrom-Json
$endpoint.authorization | Add-Member -NotePropertyName parameters -NotePropertyValue ([PSCustomObject]@{})
$endpoint.authorization.parameters | Add-Member -NotePropertyName username -NotePropertyValue test

PS D:\> $endpoint

authorization                                                                                                    
-------------                                                                                                    
@{parameters=}                                                                                                   



PS D:\> $endpoint.authorization

parameters                                                                                                       
----------                                                                                                       
@{username=test}                                                                                                 



PS D:\> $endpoint.authorization.parameters

username                                                                                                         
--------                                                                                                         
test                                                                                                             



PS D:\> $endpoint.authorization.parameters.username
test

PS D:\> 

帮助链接(如果有):

  • ConvertFrom-Json是ConvertFrom-Json(在模块Microsoft.PowerShell.Utility中)
  • Add-Member为Add-Member(在模块Microsoft.PowerShell.Utility中)