与文本字符串进行比较时, 如果需要精确匹配,则可以使用 -eq 。查找字符串的一部分时可以使用 -match 运算符,或者可以使用-like执行通配符搜索。PowerShell 还可以通过使用-in、 -notin、 -contains或 -notcontains 在数组中搜索特定值 。
如果必须满足多个条件,可以使用括号语句来管理条件组。以下示例可用于选择与各种 Web 浏览器相关的进程:
获取进程 | 对象位置 {($_。Name -eq "iexplore") -或 ($_。Name -eq "chrome") -或 ($_。Name -eq "firefox")}
许多常见的 PowerShell cmdlet 会返回一长串值,但这些值总 克罗地亚whatsapp 数据 体上用处不大。使用 Where-Object 可以快速将结果限制为您在 ScriptBlock 中定义的条件 。以下示例列出了当前用户配置文件中设置了存档位的文件:
获取 ChildItem $env:USERPROFILE -Recurse -Force | Where-Object {$_.Mode -like "*a*"}
此示例显示了$_ default变量的用法 ,该变量用于指示从管道传递的当前记录。PowerShell 4 允许您使用别名(例如 ? 或 Where )来使用 Where-Object ,并且还接受条件的快捷表示法。此示例在功能上与上面的例子相同:
获取子项 $env:USERPROFILE -Recurse -Force | ? 模式 -like "*a*"
If、elseIf 和 else 语句
控制脚本流程和执行条件逻辑的更常见方法之一是使用 if 语句。通过首先设置要满足的条件,然后设置要采取的操作,IT 专业人员可以自动执行复杂的管理操作。在 PowerShell 中,与大多数编程语言一样, if语句可以与elseif 和 else语句 一起使用 ,这允许您处理多种情况。
简单的 if 语句需要 if 关键字,后面是括号中的条件。当条件评估为 真时 ,将处理后续脚本块中包含的代码;如果为 假, 则直接跳过。以下示例显示了一个用于测试互联网连接的简单 if 语句:
if (iet) { Write-Host “互联网连接处于活动状态。” }
使用 elseif 语句,您可以向单个 if 语句添加其他条件。这与多个 if 语句不同,因为只会使用满足的第一个条件。Else 语句位于 if 语句的末尾,用于在先前的条件均不满足时执行操作。下面是一个包含 if、 elseif和 else 块的更复杂条件的示例:
if (Test-Connection www.google.com -Quiet) { Write-Host "互联网连接处于活动状态。" } elseif (Test-Connection 192.168.0.1 -Quiet) { Write-Host "仅本地网络连接可用。" } else { Write-Host "网络连接不可用。" }
Switch 语句
与if语句一样 , switch 允许您在满足某些条件时执行一组命令。 if 和 switch之间的最大区别 在于 switch 语句针对多种可能性评估一组条件,而不是每个语句评估一组可能不相关的条件。
Switch 语句以 switch 关键字开头,后跟要评估的表达式。 评估的表达式后面是括在花括号中的脚本块 ,其中包含要执行操作的潜在匹配项。每个匹配项后面都有一个脚本块,用于定义满足条件时要执行的操作。为了针对不匹配的条件执行操作, 可以使用default 关键字。