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

[玩转系统] 通过示例学习 PowerShell 不等于运算符

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

通过示例学习 PowerShell 不等于运算符


除了作为命令行工具之外,PowerShell 还是 Microsoft 的一种编程语言,可让您控制和自动化系统。 PowerShell 使用与大多数编程语言不同的运算符语法。

但是,一旦您了解了PowerShell运算符语法,您就会发现它并不难使用。在 PowerShell 中最常用的运算符之一是不等于运算符 (-ne)。该运算符允许您测试两个值是否彼此不相等。

在本文中,您将通过示例了解 PowerShell 不等于运算符以及如何使用它。

先决条件

本教程将是一个实践演示。如果您想继续操作,请确保您的系统安装了 PowerShell。本教程使用 Windows 10 和 PowerShell 7。

使用 PowerShell 不等于运算符(基础)

简而言之,PowerShell 不等于运算符 (-ne) 确定两个对象的值是否不相等,并根据结果返回一个布尔值。如果值不相等,则结果为 True;否则,结果为False

但是如何以及何时使用 PowerShell 不等于运算符呢?接下来的部分将教您 PowerShell 不等于基础知识。

比较变量

PowerShell 不等于运算符最常见的用途之一是比较两个变量。例如,假设您有两个变量 $a$b,并且您想查看它们是否相等。比较语法如下:

$a -ne $b

如果 $a$b 的值不相等,则此比较将返回 True。否则,将返回 False。

1. 在 PowerShell 控制台中运行以下命令来创建将用作示例的变量。 $a、$b、$c 和 $d 变量代表不同的值。您可以比较每个值以测试它们是否相等。

您为 $c 和 $d 分配相同的值,以查看 PowerShell 不等于运算符如何处理相等的值。

$a = 1
$b = 2
$c = 3
$d = 3

2. 现在,执行 PowerShell 不等于比较以查看 $a 和 $b 的值是否不相等。

$a -ne $b

结果返回 True,因为 $a 的值为 1,$b 的值为 2,两者不相等。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

3. 现在比较 $c 和 $d 变量,看看它们是否也不相等。

$c -ne $d

您将看到 False 输出返回,如下图所示,因为 $c 和 $d 的值相等 (3=3)。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

比较值

使用 PowerShell 时,并非所有要比较的对象都在变量中。在这种情况下,您可以直接使用 PowerShell 不等于运算符来比较值。

例如,以下命令使用 PowerShell 不等于运算符直接比较两个值。

5 -ne 3

您将看到返回 True 值,如下所示,因为值不相等。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

另一方面,比较相等的值将返回False

5 -ne 5

[玩转系统] 通过示例学习 PowerShell 不等于运算符

从数组中删除一个值

PowerShell Not Equal 运算符返回一个布尔结果来指示两个值是否不相等。除了该函数之外,该运算符还可以过滤掉数组中的项目。

例如,创建一个名为 $numbers 的变量,其中包含数字 1 到 5 的数组。

# Create an array containing numbers 1 through 5.
$numbers = 1..5
# Display the array
$numbers

[玩转系统] 通过示例学习 PowerShell 不等于运算符

接下来,运行以下命令以返回除一个数字 (4) 之外的数组。

$numbers -ne 4

现在您可以看到该命令返回了数组中除数字 4 之外的所有数字。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

比较字符串

除了数字之外,您还可以对字符串应用 PowerShell 不等于比较。

1. 例如,假设您有两个字符串“Hello”和“World”。要确定两个字符串是否不相等,请运行以下命令。

"Hello" -ne "World"

结果为 True,因为“Hello”不等于“World”。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

2. 现在比较字符串“Hello”和“hello”,看看它们是否相等。

"Hello" -ne "hello"

然后您会看到结果为 False,因为“Hello”等于“hello”。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

3. PowerShell 不等于运算符不区分大小写。正如您在上一步中看到的,“Hello”等于“hello”。但如果在比较字符串值时需要区分大小写,请将 -ne 运算符替换为 -cne 运算符,这意味着区分大小写不等于

"Hello" -cne "hello"

因此,根据 PowerShell,“Hello”和“hello”不再相等。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

在现实世界中使用 PowerShell 不等于运算符(示例)

现在您已经了解了 PowerShell 不等于运算符的基本概念,下面的部分将让您体验它的一些实际用途。

监控服务状态

Windows 系统管理的主要内容是监视服务器服务状态。此任务涉及筛选出状态未运行的服务。

例如,运行 Get-Service cmdlet 以显示本地计算机上的所有服务。

Get-Service

您可以在下面的输出中看到所有已停止和正在运行的服务。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

现在,要仅过滤那些未运行的服务,请运行以下命令,并应用 -ne 运算符,如下所示。

Get-Service | Where-Object {$_.Status -ne "Running"}

如下所示,应用 PowerShell 不等于比较后,状态列仅显示已停止的服务。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

同样,运行以下命令返回状态未停止的服务。

Get-Service | Where-Object {$_.Status -ne "Stopped"}

这次,您只能看到正在运行的服务。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

将 PowerShell 不等于与 AND 运算符组合

除了进行 1:1 比较之外,您还可以使用 -and 运算符将 PowerShell 不等于条件与另一个比较运算符(例如 -eq(等于))结合起来。当您要比较的对象必须满足多个条件时,此方法非常有用。

例如,监视服务器服务通常涉及确保所有自动服务必须正在运行。运行以下命令列出状态为未运行StartType为自动的所有服务。在此示例中,对象值必须匹配所有条件。

Get-Service | 
Where-Object {$_.Status -ne "Running" -and $_.StartType -eq "Automatic"} |
Select-Object Status,StartType,Name

现在您可以看到未运行的自动服务,这可以帮助您决定必须采取哪些操作。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

添加 If/Else 条件逻辑

您还可以在条件语句(例如 if/else 语句)内使用 PowerShell 不等于运算符。

例如,如果服务的 StartType 值为“自动”,则在大多数情况下该服务必须正在运行。下面的脚本获取所有服务,检查哪些自动服务未运行,并执行纠正操作 - 显示消息并启动服务。

注意:Start-Service $_.Name 行被注释掉并且不会运行。如果要执行该命令,请取消注释此行。

复制以下代码并在 PowerShell 中运行它。

Get-Service -ErrorAction SilentlyContinue | ForEach-Object {
    if ($_.Status -ne 'Running' -and $_.StartType -eq 'Automatic') {
        "The service [$($_.Name)] StartType is [$($_.StartType)] but its current Status is [$($_.Status)]"
        # Start-Service $_.Name
    }
}

结果显示哪些自动服务未运行。

[玩转系统] 通过示例学习 PowerShell 不等于运算符

结论

在本文中,您了解了 PowerShell 不等于运算符。您还通过示例学习了如何使用它。此时,您应该很好地理解它是如何工作的。

有了这些新发现的知识,您现在可以在 PowerShell 脚本中使用不等于运算符来测试条件。但是,请记住,还可以使用其他比较运算符。您可能想要组合多个运算符来测试更复杂的条件。

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

取消回复欢迎 发表评论:

关灯