powershell - 如果没有找到返回消息,请检查值
问题描述
我有这段代码使用自定义对象从数组中返回小于-5的值
$Results.Where({$_.Value -lt -5d})
返回我需要的值,但我无法编写一个条件,即如果上面的代码没有返回任何内容来编写消息。
“范围内的值”
我尝试了这样的事情,但它不起作用:
if(($Results.Where({$_.Value -lt -5d})) -eq 0)
{
Write-host ('Values within range.')
}
解决方案
使用该where
方法时,您将返回一个集合。集合有一个名为的内置属性Count
,可用于列出集合包含的对象数量。
if ($Results.Where({$_.Value -lt -5d}).Count -eq 0) {
# No objects are found
}
这种方法有一些潜在的警告。如果您的对象包含名为 的属性Count
,则集合特定Count
属性将在访问集合时覆盖它.Count
。如果$Results
是 single PSCustomObject
,$Results.Where()
将失败。你需要先$Results
变成一个集合:@($Results).Where()
.
在 PowerShell 7 中,您可以将三元运算符用于if-else
场景。
$Results.Where({$_.Value -lt -5d}) ? "Objects Found" : "Objects not found"
推荐阅读
- google-cloud-dataflow - 为什么 Apache Beam 中的 CustomOptions 不继承 DataflowPipelineOptions 默认属性?
- swift - 带有子视图的 NSTableCellView 的鼠标事件
- asp.net-mvc - CosmosDb 对数值字段的字符串搜索
- regex - 如何在 Google Apps 脚本的多个括号实例中加粗特定文本?
- facebook - 如何使用 facebook 和 twitter 对 firebase 进行身份验证?
- php - 无法为从控制器到视图的 JSON 响应嵌入 $data
- codeigniter-3 - 当我在 php Codeigniter 中导出到 DOC 时,我视图中编写的所有代码也出现在 doc 中
- python - jupyter notebook:内核在 python 3 中已死
- javascript - 在地图中显示经纬度的点并弹出一个点的值
- django - 在 Django 中使用 db_index=True 设置索引名称