构建 PSCustomObject 时的 PowerShell 条件语句
PowerShell conditional statements while building PSCustomObject
我想在创建 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"})
}
通过用 $()
包围它,我们使它成为一个首先执行的子表达式。
我想在创建 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"})
}
通过用 $()
包围它,我们使它成为一个首先执行的子表达式。