[玩转系统] 如何在 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 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 脚本的输出。
示例 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)
检查帐户是否未锁定。对于“用户不是管理员,并且他们的帐户未锁定”消息,这两个条件都必须成立。待打印。
这是下面屏幕截图中的输出:
示例 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 语句结合使用。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag