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

[玩转系统] 如何在 PowerShell If 语句中使用感叹号?

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

如何在 PowerShell If 语句中使用感叹号?


在之前的教程之一中,我解释了如何在 PowerShell 中使用 if-else 语句。现在,我将向您展示如何在 PowerShell If 语句中使用感叹号。感叹号 (!) 用作逻辑否定运算符;我们可以在 PowerShell if 语句中使用它。

PowerShell If 语句中的感叹号

如果您不熟悉 if 语句,那么以下是 PowerShell if 语句的语法。

if (condition) {
    # Code to execute if the condition is true
}

例如,考虑这样一个场景:您想要检查变量 $city 是否包含值“New York”:

$city = "New York"

if ($city -eq "New York") {
    Write-Output "The city is New York."
}

在此示例中,条件 $city -eq "New York" 的计算结果为 true,因此消息“The city is New York”。打印到控制台。

现在,让我向您展示如何在 PowerShell 中使用感叹号。

PowerShell 中的感叹号 (!) 用作逻辑否定运算符。它否定布尔表达式的值。例如,如果某个条件为 true,则应用 ! 将使该条件为 false,反之亦然。

现在,让我们看一些例子。

示例1:检查是否不存在

以下是检查该城市是否不是纽约的示例:

$city = "Los Angeles"

if ($city -ne "New York") {
    Write-Output "The city is not New York."
}

在本例中,$city -ne "New York" 的计算结果为 true,因为 $city 的值为“Los Angeles”,不等于“New York”。 ”因此,“这座城市不是纽约”的信息。被打印。

现在,让我们看看如何在 PowerShell 的 if 语句中使用感叹号来实现相同的结果:

$city = "Los Angeles"

if (!($city -eq "New York")) {
    Write-Output "The city is not New York."
}

此处,!($city -eq "New York") 否定了条件 $city -eq "New York"。由于 $city 是“洛杉矶”,因此条件 $city -eq "New York" 的计算结果为 false,应用 ! 则结果为 true 。因此,“这座城市不是纽约”的信息。被打印。

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

[玩转系统] 如何在 PowerShell If 语句中使用感叹号?

阅读 PowerShell If Else 语句来检查数字是否在两个值之间

示例 2:检查带感叹号的 If 语句中是否存在文件

这是检查系统上是否存在文件并在不存在时执行操作的另一个示例。在 PowerShell 中,您可以在 if-else 语句中使用感叹号。

$filePath = "C:\MyFolder\report.pdf"

if (!(Test-Path $filePath)) {
    Write-Output "The file does not exist."
    # Code to create the file or handle the absence
}

在此示例中,Test-Path $filePath 检查文件是否存在。如果文件不存在,Test-Path 返回 false,并且 !(Test-Path $filePath) 计算结果为 true,触发消息“文件不存在。 ”

使用 VS code 执行后,下面的屏幕截图中是上述 PowerShell 脚本的输出。

[玩转系统] 如何在 PowerShell If 语句中使用感叹号?

示例 3:使用感叹号验证用户输入

假设您正在编写一个脚本,提示用户输入其居住状态,并且您需要确保他们不会将输入留空。

那么,在这里,如何在 PowerShell if 语句中使用感叹号。

$state = Read-Host "Enter your state of residence"

if (!($state)) {
    Write-Output "You must enter a state."
    # Code to prompt the user again or handle the empty input
}

在本例中,!($state) 检查 $state 变量是否为空或 null。如果用户未输入任何值,$state 将是一个空字符串,并且 !($state) 将计算为 true,提示消息“您必须输入状态。”

阅读如何在 PowerShell If Else 语句中使用多个条件?

示例 4:使用感叹号检查多个条件

PowerShell 还允许您使用逻辑运算符(例如 -and-or-not)在 if 语句中组合多个条件。感叹号可以与这些运算符一起使用来创建复杂的条件。

下面是一个使用 if 语句中的感叹号检查用户是否不是管理员并且其帐户是否未被锁定的示例。

$isAdmin = $false
$isLocked = $false

if (!($isAdmin) -and !($isLocked)) {
    Write-Output "The user is not an administrator and their account is not locked."
    # Code to grant access or perform other actions
}

在此示例中,!($isAdmin) 检查用户是否不是管理员,!($isLocked) 检查帐户是否未锁定。对于“用户不是管理员,并且他们的帐户未锁定”消息,这两个条件都必须成立。待打印。

这是下面屏幕截图中的输出:

[玩转系统] 如何在 PowerShell If 语句中使用感叹号?

示例 5:否定复杂条件

以下示例展示了如何使用$()语法计算复杂表达式并返回其结果。最重要的是,我们将了解如何在 if 语句中将其与感叹号一起使用。

假设您需要检查用户是否不在特定组中并且该用户的帐户是否未过期:

$userGroups = @("Users", "PowerUsers")
$isExpired = $false

if (!($userGroups -contains "Administrators" -and !$isExpired)) {
    Write-Output "The user is either not in the Administrators group or their account is expired."
}

在此示例中,!($userGroups -contains "Administrators" -and !$isExpired) 否定整个条件。假设用户不在“管理员”组中或者其帐户已过期。在这种情况下,将显示消息“用户不在管理员组中或者其帐户已过期。”被打印。

阅读 PowerShell If-Else 字符串比较

示例 6:在 If 语句中使用感叹号检查用户权限

假设您需要在允许用户执行操作之前验证用户是否没有特定权限。然后,您可以编写下面的PowerShell脚本。

$userPermissions = @("Read", "Write")

if (!($userPermissions -contains "Admin")) {
    Write-Output "The user does not have Admin permissions."
    # Code to restrict access or notify the user
}

在此示例中,!($userPermissions -contains "Admin") 检查用户的权限数组中是否不存在“Admin”权限。

示例 6:检查服务是否未运行

这是另一个示例:您希望在执行维护任务之前确保特定服务没有运行。下面是 PowerShell 脚本。我在 If 语句中使用了感叹号。

$serviceName = "Spooler"
$serviceStatus = (Get-Service -Name $serviceName).Status

if (!($serviceStatus -eq "Running")) {
    Write-Output "The service is not running. Safe to proceed with maintenance."
    # Code to perform maintenance tasks
}

此处,!($serviceStatus -eq "Running") 检查服务状态是否不是“正在运行”。

结论

现在,我希望您了解如何在 PowerShell if-else 语句中使用感叹号 (!)。我们看到了六个不同的示例,说明如何在 PowerShell 中有效地将感叹号与 if 语句结合使用。

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

取消回复欢迎 发表评论:

关灯