如何在两个数组之间找到相同的对象



考虑以下数组:

$users = 'igor', 'max', 'andrew'
$server_admins = 'john', 'andrew', 'li', 'alex'

如果$users的任何成员在$server_admins,我需要警报 在上面的例子中,由于来自$users的"安德鲁",它将是正确的

我应该使用Compare-object吗?要不?如果是 - 如何?

有几个正确的答案。有些比其他的更简单、更干净。任何最适合您的数据的方法。

$users = 'igor','max','andrew'
$server_admins = 'john','andrew','li','alex'
# Using Compare-Object
Compare-Object $users -DifferenceObject $server_admins -IncludeEqual | Where sideindicator -eq "==" | Select-Object -ExpandProperty InputObject
# Using -contains and where
$users | Where-Object{$server_admins -contains $_}

将其中任何一个放入Foreach-Object并发出警报。可能我会选择后一个选项,因为它更简洁,同样易于理解。

您可以使用-in-contains做一些事情,例如:

$users = 'igor','max','andrew'
$server_admins = 'john','andrew','li','alex'
$users | % {
if($_ -in $server_admins)
{
'alert'
}
}

要使用单个 if 命令进行测试:

$users = 'igor','max','andrew'
$server_admins = 'john','andrew','li','alex'
If ( @($users | Where-Object{$server_admins -contains $_ }).Length){"yes"}

相关内容

  • 没有找到相关文章

最新更新