2

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

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

我知道上面的块会产生一个错误,即“if”语句无法识别。在定义 PSCustomObject 时是否有另一种方法可以包含代码块?

4

1 回答 1

3

你很亲近!

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

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

于 2017-06-28T14:52:23.990 回答