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

[玩转系统] 如何在 PowerShell 中从数组中获取唯一值?

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

如何在 PowerShell 中从数组中获取唯一值?


您是否需要从 PowerShell 数组中检索唯一值?这篇博文将指导您通过不同的方法从 PowerShell 中的数组中获取唯一值。

要从 PowerShell 中的数组获取唯一值,请使用带有 -Unique 开关的 Select-Object cmdlet。例如,$uniqueArray=$array | Select-Object -Unique 将返回一个由不同元素组成的数组,从原始 $array 中删除所有重复项。

在 PowerShell 中从数组中获取唯一值

在 PowerShell 中,数组可以保存任何类型的对象,包括整数、字符串和其他数组。

以下是 PowerShell 中简单数组的示例:

$myArray = @(1,2,3,4,5,5,6,7,8,9,0,0)

在这个数组中,我们有一些重复的值:50 出现了两次。

现在,让我们看看如何使用各种方法从 PowerShell 中的数组中获取唯一值。

1- 使用 Select-Object 和 -Unique

在 PowerShell 中从数组中删除重复项并获取唯一值的最直接方法是使用带有 -Unique 开关的 Select-Object cmdlet。此 cmdlet 过滤数组并仅返回每个唯一项目一次。

以下是如何使用此方法:

$myArray = @(1,2,3,4,5,5,6,7,8,9,0,0)
$uniqueArray = $myArray | Select-Object -Unique
$uniqueArray

执行此命令后,$uniqueArray 将包含 $myArray 中的所有唯一值。

我使用 VS code 执行了 PowerShell 脚本,请查看下面的屏幕截图以了解输出:

[玩转系统] 如何在 PowerShell 中从数组中获取唯一值?

2- 使用 Get-Unique Cmdlet

从 PowerShell 数组获取唯一值的另一种方法是使用 Get-Unique cmdlet。但是,为了使 Get-Unique 正常工作,必须首先对数组进行排序,因为它会比较相邻项。

以下是如何使用 Get-Unique

$myArray = @(1,2,3,4,5,5,6,7,8,9,0,0)
$sortedArray = $myArray | Sort-Object
$uniqueArray = $sortedArray | Get-Unique
$uniqueArray

首先,我们使用 Sort-Object$myArray 进行排序,然后将排序后的数组通过管道传输到 Get-Unique 中以检索唯一值。

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

[玩转系统] 如何在 PowerShell 中从数组中获取唯一值?

3- 使用自定义函数和循环

在 PowerShell 中,您还可以创建自己的自定义函数以从 PowerShell 数组中获取唯一值。

这是此类函数的一个简单示例:

function Get-UniqueValues {
    param($array)
    $uniqueValues = @()

    foreach ($item in $array) {
        if ($item -notin $uniqueValues) {
            $uniqueValues += $item
        }
    }

    return $uniqueValues
}

$uniqueArray = Get-UniqueValues -array $myArray

在此函数中,我们迭代数组中的每个项目。我们检查该项目是否已不在 $uniqueValues 集合中,如果不在,我们将添加它。此方法更加手动,但允许您根据需要添加其他逻辑。

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

[玩转系统] 如何在 PowerShell 中从数组中获取唯一值?

无论您选择哪种方法,输出都将是一组唯一值。您可以通过将 $uniqueArray 输出到控制台来验证这一点:

$uniqueArray

这将在 PowerShell 中打印原始数组中的所有唯一值。

结论

可以使用多种方法从 PowerShell 中的数组中检索唯一值。对于大多数情况,将 Select-Object-Unique 开关结合使用是最有效的。但是,对于需要首先对数组进行排序或应用更复杂逻辑的情况,Get-Unique 或带有循环的自定义函数是很好的选择。

在本 PowerShell 教程中,我将解释如何使用以下方法从 PowerShell 中的数组获取唯一值

  1. 将 Select-Object 与 -Unique 一起使用
  2. 使用 Get-Unique Cmdlet
  3. 使用自定义函数和循环

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

取消回复欢迎 发表评论:

关灯