操作 | 定义 |
| 等于 |
| 不等于 |
| 大于 |
| 大于或等于 |
| 小于 |
| 小于或等于 |
| 使用 |
| 不使用 |
| 匹配指定的正则表达式 |
| 不匹配指定的正则表达式 |
| 确定集合中是否包含指定的值 |
| 确定集合是否不包含特定值 |
| 确定指定的值是否在集合中 |
| 确定指定的值是否不在集合中 |
| 替换指定的值 |
表 5-1 中列出的所有运算符都不区分大小写。 将 c 放置在表 5-1 中列出的运算符之前,使其区分大小写。 例如,-ceq 是区分大小写的 -eq 比较运算符。
首字母大写的“PowerShell”等效于使用等于比较运算符的小写的“powershell”。
PowerShell复制
'PowerShell' -eq 'powershell'Output复制
True使用区分大小写的等于比较运算符时,不等效。
PowerShell复制
'PowerShell' -ceq 'powershell'Output复制
False不等于比较运算符反转条件。
PowerShell复制
'PowerShell' -ne 'powershell'Output复制
False大于、大于或等于、小于和小于或等于均可用于字符串或数值。
PowerShell复制
5 -gt 5Output复制
False在上一个示例中,使用大于或等于而不是大于,会返回布尔值 true,因为 5 等于 5。
PowerShell复制
5 -ge 5Output复制
True根据上述两个示例中的结果,你可能会猜到使用小于和小于或等于的情况。
PowerShell复制
5 -lt 10Output复制
True即使对于经验丰富的 PowerShell 用户,-Like 和 -Match 运算符也可能会造成混淆。 -Like 与通配符 * 和 ? 结合使用,以执行“like”匹配。
PowerShell复制
'PowerShell' -like '*shell'Output复制
True-Match 使用正则表达式执行匹配。
PowerShell复制
'PowerShell' -match '^*.shell$'Output复制
True使用范围运算符将数字 1 到 10 存储在变量中。
PowerShell复制
$Numbers = 1..10Output复制
确定 $Numbers 变量是否包含 15。
PowerShell复制
$Numbers -contains 15Output复制
False确定它是否包含数字 10。
PowerShell复制
$Numbers -contains 10Output复制
True-NotContains 反转逻辑,以查看 $Numbers 变量是否不包含值。
PowerShell复制
$Numbers -notcontains 15Output复制
True前面的示例返回布尔值 true,因为 $Numbers 变量不包含 15。 但它包含数字 10,因此在进行测试时,结果为 false。
PowerShell复制
$Numbers -notcontains 10Output复制
FalsePowerShell 版本 3.0 首次引入了“in”比较运算符。 它用于确定某个值是否“位于”数组中。 $Numbers 变量是数组,因为它包含多个值。
PowerShell复制
15 -in $NumbersOutput复制
False换言之,-in 执行与 contains 比较运算符相同的测试,不过方向相反。
PowerShell复制
10 -in $NumbersOutput复制
True15 不在 $Numbers 数组中,因此在下面的示例中返回 false。
PowerShell复制
15 -in $NumbersOutput复制
False与 -contains 运算符一样,not 反转 -in 运算符的逻辑。
PowerShell复制
10 -notin $NumbersOutput复制
False上面的示例返回 false,因为 $Numbers 数组包含 10,并且条件进行了测试以确定它是否不包含 10。
15“不位于”$Numbers 数组中,因此它返回布尔值 true。
PowerShell复制
15 -notin $NumbersOutput复制
True-replace 运算符所执行的操作和你想象的一样。 它用于替换内容。 如果指定一个值,则会将该值替换为空值。 在下面的示例中,我将“Shell”替换为空值。
PowerShell复制
'PowerShell' -replace 'Shell'Output复制
Power如果要将值替换为其他值,请在要替换的模式之后指定新值。 SQL Saturday in Baton Rouge is an event that I try to speak at every year. 在下面的示例中,我将“Saturday”这个词替换为缩写“Sat”。
PowerShell复制
'SQL Saturday - Baton Rouge' -Replace 'saturday','Sat'Output复制
SQL Sat - Baton Rouge还有一些可用于替换内容的方法(如 Replace()),其工作原理类似于替换运算符。 但是,默认情况下,-Replace 运算符不区分大小写,而 Replace() 方法区分大小写。
PowerShell复制
'SQL Saturday - Baton Rouge'.Replace('saturday','Sat')Output复制
SQL Saturday - Baton Rouge请注意,上述示例中未替换“Saturday”一词。 这是因为所指定的大小写格式与原始格式不同。 当指定的“Saturday”的大小写格式与原始格式相同时,Replace() 方法会按预期替换它。
PowerShell复制
'SQL Saturday - Baton Rouge'.Replace('Saturday','Sat')Output复制
SQL Sat - Baton Rouge使用方法转换数据时要小心,因为可能会遇到无法预料的问题,例如 Turkey Test 失败。 有关示例,请参阅标题为使用 Pester 测试具有其他区域性的 PowerShell 代码的博客文章。 我建议尽量使用运算符而不是方法,以避免这些类型的问题。
尽管可以像前面的示例中所示使用比较运算符,但我通常将它们与 Where-Object cmdlet 一起使用来执行某种类型的筛选。










