我想在创建PSCustomObject时检查变量是否存在。我有很多对象要查询并将数据收集到我的新对象中,所以我不想用" if"来复制整个代码块。声明,因为我试图简洁。
[array]$newObject += [PSCustomObject][ordered]@{
JitterInterArrival = (if ($_.QoeReport.AudioStreams){$_.QoeReport.AudioStreams[0].JitterInterArrival}else{"N/A"}
}
我知道上面的块会产生一个错误,即" if"声明未得到承认。还有另一种在定义PSCustomObject时包含代码块的方法吗?
答案 0 :(得分:3)
你非常接近!
[array]$newObject += [PSCustomObject][ordered]@{
JitterInterArrival = $(if ($_.QoeReport.AudioStreams){$_.QoeReport.AudioStreams[0].JitterInterArrival}else{"N/A"})
}
通过用$()
包围它,我们使它成为一个首先执行的子表达式。