构建PSCustomObject时的PowerShell条件语句

时间:2017-06-28 14:27:29

标签: powershell pscustomobject

我想在创建PSCustomObject时检查变量是否存在。我有很多对象要查询并将数据收集到我的新对象中,所以我不想用" if"来复制整个代码块。声明,因为我试图简洁。

[array]$newObject += [PSCustomObject][ordered]@{
  JitterInterArrival = (if ($_.QoeReport.AudioStreams){$_.QoeReport.AudioStreams[0].JitterInterArrival}else{"N/A"}
}

我知道上面的块会产生一个错误,即" if"声明未得到承认。还有另一种在定义PSCustomObject时包含代码块的方法吗?

1 个答案:

答案 0 :(得分:3)

你非常接近!

[array]$newObject += [PSCustomObject][ordered]@{
  JitterInterArrival = $(if ($_.QoeReport.AudioStreams){$_.QoeReport.AudioStreams[0].JitterInterArrival}else{"N/A"})
}

通过用$()包围它,我们使它成为一个首先执行的子表达式。