如何解决如果-eq和-ieq不区分大小写并且具有相同的用途,或者在特定情况下需要使用-ieq,是否可以使用Powershell?
if ("True" -eq "true") {
Write-Host "Hello"
}
else {
Write-Host "World"
}
输出: “你好”
if ("True" -ieq "true") {
Write-Host "Hello"
}
else {
Write-Host "World"
}
输出: “你好”
如果两者目的相同,是否需要-ieq
?
解决方法
操作员-ieq
只是-eq
的别名(另一个名称),equality operator [1] ,对于字符串比较,它不区分大小写 ,就像PowerShell一样。
因此,-ieq
不是必需的,但是您可以选择使用它来显式表示不区分大小写(i
表示),并将其与{{1 }} -ceq
运算符的变体,区分大小写 (-eq
表示)。
注意事项:所有比较操作数存在c
和i
前缀的变体,例如c
/ { {1}}),但对于像-imatch
这样的运算符(也适用于除字符串以外的操作数 ),对于忽略前缀 非字符串操作数;例如-cmatch
和-eq
与1 -ceq 1
相同,只需简单地数值上比较。
1 -ieq 1
比较是 hybrid 情况:使用1 -eq 1
变体,它主要的作用类似于字符串(不区分大小写,不区分文化的比较,但是与字符串不同,无法识别字符之间的Unicode等价),而对于[char]
/ -eq
变体,它严格执行 ordinal 比较,即按Unicode代码点的数字比较-参见this answer。
[1]从技术上讲,在幕后,反之亦然:-lt
产生-gt
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。