windows - 查找值不属于另一个数组 PowerShell 的数组元素

标签 windows powershell

我有两个数组

  • $adg -(广告组列表)

  • $dbs -(数据库名称列表)

假设我使用这个命令 $adg -匹配 $dbs.i

输出将是名称中包含字符串 $dbs 的所有 AD 组。

但是,我的目标是找到不属于 AD 组数组的数据库。

例如:

$adg = @("Dev22_Owner","Test49_Owner","Rocket_Owner")
$dbs = @("Dev22", "Confidential", "InternDB", "Rocket", "Test49")

我应该采用什么方法来获取输出:

Confidential

InternDB

我试过 $dbs |其中 $adg -notmatch $dbs.i 但没有输出。

最佳答案

我会先从广告组中删除不必要的用户部分:

$groups = $adg | ForEach-Object {
    $_ -replace '_.*?$'
}

然后您可以使用 Where-Object cmdlet 和 -notin 运算符来过滤它们:

$dbs | Where-Object { $_ -notin $groups }

输出:

Confidential
InternDB

关于windows - 查找值不属于另一个数组 PowerShell 的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862720/

相关文章:

powershell - PowerShell-脚本属性内的SupportsShouldProcess

powershell - 将特殊字符作为参数传递给Powershell脚本函数

c++ - 尝试从另一个进程读取 32 位整数时,ReadProcessMemory 使应用程序崩溃

c++ - 为什么在包含 WinSock2.h 时会出现大量编译器错误?

c# - 为什么相同的代码大小会产生不同大小的exe文件

arrays - 比较Powershell中的两个数组,包括顺序

powershell - 如何阻止 Powershell 凭据请求在长脚本中提示?

powershell - 在 Power-Shell 中转义双引号字符时如何处理空格键

java - 访问被拒绝 Apache CXF SOAP

python - os.path.expanduser ("~"的替代方案)?