我想在创建 PSCustomObject 时检查变量是否存在。我有相当多的对象需要查询并将数据收集到我的新对象中,因此我不想用“if”语句复制整个代码块,因为我试图简洁。
[array]$newObject += [PSCustomObject][ordered]@{
JitterInterArrival = (if ($_.QoeReport.AudioStreams){$_.QoeReport.AudioStreams[0].JitterInterArrival}else{"N/A"}
}
我知道上面的 block 会产生一个错误,即“if”语句无法识别。是否有另一种方法可以在定义 PSCustomObject 时包含代码块?
最佳答案
你们非常接近!
[array]$newObject += [PSCustomObject][ordered]@{
JitterInterArrival = $(if ($_.QoeReport.AudioStreams){$_.QoeReport.AudioStreams[0].JitterInterArrival}else{"N/A"})
}
通过用 $()
包围它,我们使其成为首先执行的子表达式。
关于构建 PSCustomObject 时的 PowerShell 条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44805393/