当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 中的数组包含 [带有示例]

作者:精品下载站 日期:2024-12-14 05:13:04 浏览:17 分类:玩电脑

PowerShell 中的数组包含 [带有示例]


最近,我收到客户的一项要求,要求在 PowerShell 中检查数组是否包含值。在 PowerShell 中有多种方法可以完成此操作。在本 PowerShell 教程中,我将向您展示 PowerShell 中包含的一些数组示例,包括数组是否包含 PowerShell 中的字符串。

要检查数组是否包含 PowerShell 中的特定值,请使用 -contains 运算符。例如,如果 $array 中存在“value”,则 $array -contains ‘value’ 将返回 $true,否则返回 $false。对于更复杂的检查(例如在对象数组中),您可以使用Where-Object或其他过滤cmdlet。

PowerShell 中的数组包含

在 PowerShell 中,我们可以使用不同的方法来检查数组是否包含值。以下是这些:

方法 1:-contains 运算符

在 PowerShell 中检查数组是否包含特定值的最简单方法是使用 -contains 运算符。如果数组包含指定值,则此运算符返回 $true,否则返回 $false

这是一个例子:

$myArray = @(1, 2, 3, 4, 5)
$valueToCheck = 3

if ($myArray -contains $valueToCheck) {
    Write-Host "The array contains the value $valueToCheck."
} else {
    Write-Host "The array does not contain the value $valueToCheck."
}

这将输出:

The array contains the value 3.

我使用 VS code 执行了 PowerShell 脚本,您可以在下面的屏幕截图中看到输出:

[玩转系统] PowerShell 中的数组包含 [带有示例]

方法 2:.Contains() 方法

检查数组是否包含特定值的另一种方法是使用 PowerShell 中数组的 .Contains() 方法。此方法的工作原理与 -contains 运算符类似。

例子 :

$myArray = @(1, 2, 3, 4, 5)
$valueToCheck = 3

if ($myArray.Contains($valueToCheck)) {
    Write-Host "The array contains the value $valueToCheck."
} else {
    Write-Host "The array does not contain the value $valueToCheck."
}

输出将与前面的示例相同。

您可以在下面的屏幕截图中看到输出:

[玩转系统] PowerShell 中的数组包含 [带有示例]

方法 3:Where-Object Cmdlet

您还可以使用 Where-Object cmdlet 来过滤 PowerShell 数组并检查它是否包含特定值。这有点冗长,但在更复杂的场景中可能很有用。

使用方法如下:

$myArray = @(1, 2, 3, 4, 5)
$valueToCheck = 3

$containsValue = $myArray | Where-Object { $_ -eq $valueToCheck }
if ($containsValue) {
    Write-Host "The array contains the value $valueToCheck."
} else {
    Write-Host "The array does not contain the value $valueToCheck."
}

这将为您提供与其他方法相同的结果。

您可以在下面的屏幕截图中看到输出:

[玩转系统] PowerShell 中的数组包含 [带有示例]

方法 4:ForEach-Object Cmdlet

ForEach-Object cmdlet 可用于迭代数组中的每个元素并检查 PowerShell 中的值。这不是简单检查数组是否包含值的最有效方法,但了解如何迭代数组是有好处的。

例子 :

$myArray = @(1, 2, 3, 4, 5)
$valueToCheck = 3
$containsValue = $false

$myArray | ForEach-Object {
    if ($_ -eq $valueToCheck) {
        $containsValue = $true
    }
}

if ($containsValue) {
    Write-Host "The array contains the value $valueToCheck."
} else {
    Write-Host "The array does not contain the value $valueToCheck."
}

同样,这将输出值 3 包含在数组中。

方法 5:-in 运算符

-in 运算符与 PowerShell -contains 类似,但语法相反。您不必先指定数组,而是先指定要查找的值。

这是一个例子:

$valueToCheck = 3
$myArray = @(1, 2, 3, 4, 5)

if ($valueToCheck -in $myArray) {
    Write-Host "The array contains the value $valueToCheck."
} else {
    Write-Host "The array does not contain the value $valueToCheck."
}

结果与 -contains 运算符相同。

PowerShell 中数组包含字符串

让我向您展示如何在 PowerShell 中检查数组是否包含字符串的示例。

要检查 PowerShell 数组是否包含特定字符串,您可以使用 -contains 运算符。这是一个例子:

# Define an array of city names
$cities = @("New York", "Los Angeles", "Chicago", "Houston", "Phoenix")

# Check if the array contains the city "Chicago"
if ($cities -contains "Chicago") {
    Write-Output "The array contains Chicago."
} else {
    Write-Output "The array does not contain Chicago."
}

在此示例中,数组$cities包含多个城市名称。 -contains 运算符用于检查“Chicago”是否在数组中。如果是,脚本输出“该数组包含芝加哥”。否则,它输出“该数组不包含芝加哥”。

您还可以查看下面的屏幕截图:

[玩转系统] PowerShell 中的数组包含 [带有示例]

结论

在 PowerShell 中检查数组是否包含特定值是一个非常常见的需求。在本 PowerShell 教程中,我解释了 PowerShell 中数组包含的五种不同方法。

  • -包含运算符
  • .Contains() 方法
  • Where-Object Cmdlet
  • ForEach-Object Cmdlet
  • -in 运算符

-contains 运算符和 .Contains() 方法简单且易于使用。 Where-ObjectForEach-Object cmdlet 提供了更大的灵活性,并且在更复杂的过滤场景中非常有用。最后,-in 运算符提供了一种替代语法,有些人可能会发现这种语法更具可读性。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯