我想在创建PSCustomObject时检查变量是否存在。我有很多对象要查询并将数据收集到新对象中,因此,为了简洁起见,我不想使用“if”语句复制整个代码块。
[array]$newObject += [PSCustomObject][ordered]@{
JitterInterArrival = (if ($_.QoeReport.AudioStreams){$_.QoeReport.AudioStreams[0].JitterInterArrival}else{"N/A"}
}
我知道上面的块会产生一个错误,即“if”语句无法识别。定义PSCustomObject时,还有另一种方式包含代码块吗?
最佳答案
你很亲密!
[array]$newObject += [PSCustomObject][ordered]@{
JitterInterArrival = $(if ($_.QoeReport.AudioStreams){$_.QoeReport.AudioStreams[0].JitterInterArrival}else{"N/A"})
}
通过用
$()
包围它,我们使它成为首先执行的子表达式。