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

[玩转系统] 在 PowerShell 中比较数组 [4 种方法]

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

在 PowerShell 中比较数组 [4 种方法]


[玩转系统] 在 PowerShell 中比较数组 [4 种方法]

在这篇文章中,我们将了解如何在 PowerShell 中比较数组。

PowerShell 支持具有一维或多维的数组,并且每个维度中包含零到多个元素。维度内的元素从 0 开始按整数升序编号。此外,数组下标运算符[]允许访问任何特定元素。 PowerShell 可以通过多种方式使用来比较数组。以下是其中的一些。

比较字符串数组

如果您有两个包含字符串的数组,我们可以以最简单的方式之一将它们与 PowerShell 进行比较。当我们发现自己处于这种情况时,我们可以通过几种不同的方式比较数组中的字符串;下面是一些比较字符串数组的方法。

  • Where-Object Cmdlet 与 in 运算符结合使用
  • 使用 Compare-Object Cmdlet
  • 使用 -contains 运算符
  • 使用 -in 运算符

Where-Object Cmdlet 与 in 运算符结合使用

使用 Where-Object cmdlet 在 PowerShell 中比较数组。

使用Where-Object Cmdlet:

$array1 = "Monday", "Tuesday", "Wednesday", "Thursday"
$array2 = "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"
$array1 | Where-Object -FilterScript { $_ -in $array2 }

输出 :

Wednesday
Thursday

PowerShell Where-Object cmdlet 的唯一目的是过滤命令的输出,以便仅返回您想要的数据。脚本块是一个匿名函数。因此,您可以使用 -FilterScript 参数来使用脚本块作为过滤器。通过此参数,您可以编写一个脚本块,然后可以将其传递给 FilterScript 并在 where-object cmdlet 中执行。

-in 运算符表示该值位于集合中,如果找到匹配则返回属性值。管道变量 $_ 是 PowerShell 中用于表示当前对象的特定变量。因此,我们从找到匹配的两个数组中获得了输出WednesdayThursday

使用 Compare-Object Cmdlet

使用 Compare-Object cmdlet 在 PowerShell 中比较数组。 Compare-Object cmdlet 比较两组对象。一组对象是参考,另一组对象是差异。**

使用比较对象 Cmdlet:

$array1 = "Monday", "Tuesday", "Wednesday", "Thursday"
$array2 = "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"
Compare-Object -ReferenceObject $array1 -DifferenceObject $array2

输出 :

InputObject SideIndicator
----------- -------------
Friday      =>
Saturday    =>
Sunday      =>
Monday      <=
Tuesday     <=

我们在 PowerShell 中使用 Compare-Object cmdlet 来比较指定的数组。使用 -ReferenceObjectDifferenceObject,此 cmdlet 可以确定每个数组中存在哪些元素,哪些不存在。 =>SideIndicator 属性,指示返回的 InputObject 属性位于 DifferenceObject 值中,而不是 ReferenceObject 值,而

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

取消回复欢迎 发表评论:

关灯