【发布时间】:2020-05-29 10:49:57
【问题描述】:
我有以下代码:
$results = Invoke-RestMethod -Uri "XXX" -Credential $cred
$results.value | Where-Object releaseDefinition.name -eq "XYZ"
由于某种原因没有返回任何结果,当我对其运行等效的“Select-Obejct”查询时,问题变得清晰:
$results.value | Select-Object releaseDefinition.name
全部为空.. 谷歌说我需要使用 the "-ExpandProperty" tag to do this:
$results.value | Select-Object releaseDefinition -ExpandProperty name
所以我尝试对我的“Where-Object”语句做同样的事情:
$results.value | Where-Object releaseDefinition -ExpandProperty name -eq "XYZ"
而且是错误的...因为that property doesn't exist.所以我需要找到不同的方法来完成这个任务,我怎样才能在不使用这个参数的情况下完成上面的代码呢?还有为什么这个参数存在于select而不是where子句中?
【问题讨论】:
-
Select-Objectcmdlet 选择一个对象或一组对象的指定 属性。Where-Objectcmdlet 从传递给它的对象集合中选择具有特定属性值的对象。我猜releaseDefinition是一个嵌入式对象。请在问题中添加输入对象 ($Result | ConvertTo-Json) 的(样本)。
标签: powershell select where-clause