如何快速查找PowerShell数组中指定值的索引位置?
更快捷的AD组织单元索引查找方法
当然有更简便的实现方式,以下是几种常用高效方法:
方法1:使用数组原生的FindIndex方法
PowerShell中的数组自带FindIndex方法,可直接传入匹配逻辑的脚本块,返回第一个符合条件的元素索引(找不到则返回-1):
$index = $OUs.FindIndex({ $args[0].Name -eq "Test" })
方法2:提取名称数组后调用静态索引查找
先提取所有OU的名称组成独立数组,再通过[Array]::IndexOf静态方法快速定位:
$index = [Array]::IndexOf($OUs.Name, "Test")
注:若存在多个名称为"Test"的OU,该方法仅返回第一个匹配项的索引。
方法3:用管道简化计数匹配逻辑
通过ForEach-Object的内置计数逻辑,简洁完成索引定位:
$targetIndex = -1 $OUs | ForEach-Object -Begin { $counter = 0 } -Process { if ($_.Name -eq "Test") { $targetIndex = $counter } $counter++ }
这些方法都能替代原始的循环打印方式,直接获取目标元素的索引值。
内容的提问来源于stack exchange,提问作者Badger
相关产品推荐
相关产品推荐

