【问题标题】:How can you check if a variable is in an array in PowerShell?如何检查变量是否在 PowerShell 中的数组中?
【发布时间】:2017-06-18 13:14:21
【问题描述】:

我正在尝试在 powershell 中创建邮箱权限审核,并希望从 powershell 脚本中的输出中删除特定帐户,而不是之后手动删除。

为了做到这一点,我正在寻找一种方法来将数组的内容与 powershell 中的单个字符串进行比较。

例如,如果我要声明一个数组:

$array = "1", "2", "3", "4"

然后我想找到一种方法来执行以下操作:

$a = "1"
$b = "5"

if ($a -ne *any string in $array*) {do something} #This should return false and take no action

if ($b -ne *any string in $array*) {do something} #This should return true and take action

我不知道如何实现这一点,感谢任何帮助

【问题讨论】:

标签: arrays powershell if-statement for-loop compare


【解决方案1】:

您有几种不同的选择:

$array = "1", "2", "3", "4"

$a = "1"
$b = "5"

#method 1
if ($a -in $array)
{
    Write-Host "'a' is in array'"
}

#method 2
if ($array -contains $a)
{
    Write-Host "'a' is in array'"
}

#method 3
if ($array.Contains($a))
{
    Write-Host "'a' is in array'"
}

#method 4
$array | where {$_ -eq $a} | select -First 1 | %{Write-Host "'a' is in array'"}

【讨论】:

    【解决方案2】:

    或者……

    [Int32[]] $data        = @( 1, 2, 3, 4, 5, 6 );
    [Int32[]] $remove_list = @( 2, 4, 6 );
    
    $data | Where-Object { $remove_list -notcontains $_ }
    

    (返回 1、3 和 5)

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      相关资源
      最近更新 更多