如何在 PowerShell 中否定条件

  1. 使用 -not 运算符在 PowerShell 中否定条件
  2. 使用!运算符在 PowerShell 中否定条件
  3. 使用 -notmatch 运算符在 PowerShell 中否定条件
  4. 使用 -ne 运算符在 PowerShell 中否定条件
  5. 使用 -notlike 运算符在 PowerShell 中否定条件
  6. 结论
如何在 PowerShell 中否定条件

PowerShell 具有不同的决策语句来执行代码,与其他编程语言相似。您可以在 PowerShell 脚本中使用条件进行决策。

这些脚本根据这些决策执行不同的操作。如果条件为 true,它将执行一个命令,如果条件为 false,它将执行另一个命令。

PowerShell 中最常用的语句之一是 If 语句。它有三种类型:if 语句、if-else 语句和嵌套 if 语句。

PowerShell 还使用 switch 语句作为条件语句。

这是一个简单的 if 语句示例。

if (5 -lt 7) {
    Write-Host "5 is less than 7"
}

如果 5 小于 7,它将执行 Write-Host 命令。

输出:

在 PowerShell 中否定条件 - 输出 1

逻辑运算符连接了 PowerShell 中的条件语句,使您能够测试多个条件。PowerShell 支持 -and-or-xor-not!逻辑运算符。

本教程将教您在 PowerShell 中否定一个条件。

使用 -not 运算符在 PowerShell 中否定条件

在 PowerShell 中,-not 运算符是一个强大的否定条件的工具。它使您能够轻松反转逻辑表达式的结果,使您的脚本更加动态和灵活。

$condition = $true
if (-not $condition) {
    Write-Host "Condition is false"
}

在这个示例中,我们将 $condition 初始化为 $true。当我们对 $condition 应用 -not 运算符时,由于原始条件为真,因此其值为 $false。因此,消息"Condition is false"不会打印。

输出:

在 PowerShell 中否定条件 - 输出 2

现在,让我们测试另一个条件。

$value = 5
if (-not ($value -eq 10)) {
    Write-Host "Value is not equal to 10"
}

在这个示例中,我们将 $value 设置为 5。我们使用 -eq 运算符检查 $value 是否等于 10,但使用 -not 运算符时,我们否定这个条件。结果是表达式 ($value -eq 10) 的值为 $false,而 -not 运算符将其转换为 $true

因此,我们打印消息"Value is not equal to 10"

输出:

在 PowerShell 中取反条件 - 输出 3

使用!运算符在 PowerShell 中否定条件

!运算符,也被称为逻辑非运算符,用于否定条件。它基本上反转布尔表达式的真值。

当您需要检查某个条件是否为假而不是为真时,通常使用此运算符。

$condition = $true
if (!$condition) {
    Write-Host "Condition is false"
}

在这个示例中,我们将 $condition 初始化为 $true。当我们对 $condition 应用!运算符时,由于原始条件为真,因此其值为 $false。因此,消息"Condition is false"不会打印。

输出:

在 PowerShell 中否定一个条件 - 输出 4

使用 -notmatch 运算符在 PowerShell 中否定条件

在 PowerShell 中,-notmatch 运算符用于基于模式匹配来否定条件。此运算符检查字符串是否不匹配指定模式。

当您想要排除某些字符串或模式时,这特别有用。

$string = "Hello, world!"
if ($string -notmatch "Goodbye") {
    Write-Host "String does not contain 'Goodbye'"
}

在这个示例中,我们有一个包含值"Hello, world!"的字符串 $string。我们使用 -notmatch 运算符检查该字符串是否不匹配模式"Goodbye"

由于字符串"Hello, world!"不包含子字符串"Goodbye",因此条件为真,消息"String does not contain 'Goodbye'"被打印。

输出:

在 PowerShell 中否定条件 - 输出 5

使用 -ne 运算符在 PowerShell 中否定条件

在 PowerShell 中,-ne 运算符用于基于不等式否定条件。它检查两个值是否不相等。

当您需要排除某些值以进行比较时,此运算符特别有用。

$value = 5
if ($value -ne 10) {
    Write-Host "Value is not equal to 10"
}

在这个示例中,我们将值 5 赋给变量 $value。然后,我们使用 -ne 运算符检查 $value 是否不等于 10

由于 $value 确实是 5,而且不等于 10,因此条件评估为真,消息"Value is not equal to 10"被打印。

输出:

在 PowerShell 中否定条件 - 输出 6

使用 -notlike 运算符在 PowerShell 中否定条件

在 PowerShell 中,-notlike 运算符用于基于通配符模式匹配来否定条件。它允许您检查字符串是否不匹配指定模式。

当您需要从比较中排除某些模式或子字符串时,此运算符非常有用。

$string = "Hello, world!"
if ($string -notlike "*Goodbye*") {
    Write-Host "String does not contain 'Goodbye'"
}

在这个示例中,我们有一个包含值"Hello, world!"的字符串 $string。我们使用 -notlike 运算符检查该字符串是否不匹配模式"*Goodbye*"

由于字符串"Hello, world!"不包含子字符串"Goodbye",因此条件为真,消息"String does not contain 'Goodbye'"被打印。

输出:

在 PowerShell 中否定条件 - 输出 7

结论

在本文中,我们探讨了在 PowerShell 中否定条件的各种方法,为脚本逻辑提供了灵活性和精确性。我们开始讨论 -not 运算符,它反转逻辑表达式的结果,随后介绍了!运算符,称为"逻辑非"运算符,直接用于否定条件。

然后,我们深入研究了 -notmatch 运算符,它检查字符串是否不匹配指定模式,以及 -ne 运算符,它评估两个值之间的不等性。最后,我们介绍了 -notlike 运算符,用于基于通配符模式匹配否定条件。

通过理解和应用这些方法,PowerShell 用户可以增强其脚本的健壮性和多样性。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website