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

[玩转系统] 了解 Powershell -Eq -Ne 和更多比较运算符

作者:精品下载站 日期:2024-12-14 12:41:31 浏览:15 分类:玩电脑

了解 Powershell -Eq -Ne 和更多比较运算符


您是否正在努力理解 PowerShell 比较运算符,例如 eqneceqcne。如果是这样,请继续阅读。

来自软件开发背景的我第一次听到“嗯?”那一刻是我第一次看到 PowerShell 的比较运算符 eqceqcne 等。所有其他语言都有比较运算符,但不太像 PowerShell。我习惯了 ==

不仅语法看起来与典型的编程语言完全不同,而且在处理比较值集合时它们的行为也不同。

在学习 PowerShell 时,这确实让我感到困惑,但现在看来就像那句老啤酒格言;这是一种后天习得的品味。

如果您不熟悉比较运算符,让我们简要介绍一下什么是比较运算符,并深入了解 PowerShell 引入的细微差别。不久之后,您将能够毫无问题地在 PowerShell 脚本中使用运算符。

正如我所提到的,所有编程/脚本语言都有比较运算符。从最基本的意义上讲,比较运算符对于评估不同事物与其他事物的比较是必要的。它们用于获取两个对象并查看这两个对象之间的差异(如果有)。

在 PowerShell 的情况下,运算符也可用于查找值集合内的元素。

在这篇文章中,我将介绍相等运算符以及 PowerShell 如何使用它们。它们是 eqne 及其区分大小写的对应项 ceqcne。要获得完整列表,您可以跳过 Technet 站点或仅使用 Powershell 控制台中的 Get-Help about_comparison_operators

PowerShell -EQ 和 -CEQ

如果您需要查看一个对象是否等于另一个对象,则必须使用 eq(不区分大小写)或 ceq(区分大小写)运算符。这些运算符测试您想要比较的每个实体的值。

当我第一次开始学习 PowerShell 时,我会不断地做这样的事情

$string = 'Adam'
if ($string = 'Adam') {
    'string is equal to Adam'
}

你很快就会因为不这样做而受到打击。 = 符号是赋值运算符而不是比较运算符。您不能使用 = 符号将一个值与另一个值进行比较。

执行此操作的正确方法是定义要在表达式左侧检查的值并使用 eq 运算符。以下是 eqceq 运算符及其使用方法的示例。

[玩转系统] 了解 Powershell -Eq -Ne 和更多比较运算符

请注意,当我们的变量与 adam 进行比较时,eq 如何返回布尔值 True 值,但 ceq 返回布尔值 假值?这显示了两个运算符之间区分大小写的差异。

这对于标量(单个)值来说非常好,但您也可以使用这些运算符查找特定值的所有实例。例如,使用 PowerShell -eq 运算符来过滤数组中的项目:

[玩转系统] 了解 Powershell -Eq -Ne 和更多比较运算符

如果您有一个包含值集合的变量(例如数组),则可以使用 eq 和 ceq 来查找集合内值的所有实例。

请注意,它找到了我们尝试比较的整数 9 的所有实例。我一直使用这个方便的方法。

-NE 和 -CNE

在另一侧,有 necne。它们与 eqceq 完全相反,但显示完全相同的行为,只是相反。他们不测试平等,而是测试不平等。

[玩转系统] 了解 Powershell -Eq -Ne 和更多比较运算符

我希望这能够很好地解释相等比较运算符。作为一个新手,这确实让我陷入了困境,直到我被错误消息打败才屈服。我希望这篇文章可以防止我受到同样的打击。

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

取消回复欢迎 发表评论:

关灯