我正在尝试过滤具有标题字段的对象,我想忽略大小写。如果关闭,有没有办法确保区分大小写?
| Where-Object {$_.Title -like "myString"}
答案 0 :(得分:58)
PowerShell基本上不区分大小写(例如"HEy" -like "hey"
为True
)。
如果您想使用区分大小写的like
版本,请使用-clike
。
答案 1 :(得分:26)
默认情况下,区分大小写已关闭:
PS> 'test','TEST','TeSt','notest' | ? { $_ -like 'test' }
test
TEST
TeSt
来自文档:
默认情况下,所有比较运算符 不区分大小写。做一个 比较运算符区分大小写, 在运算符名称前面加
"c"
。 例如,区分大小写"-eq"
的版本为"-ceq"
。要做 不区分大小写, 在运算符前面加"i"
。对于 例如,显式 不区分大小写的"-eq"
版本"-ieq"
。
有关详细信息,请运行help about_comparison_operators
答案 2 :(得分:0)
我认为,更通用的方法是使用正则表达式,这对于从其他语言(如Perl)学习正则表达式的人来说尤其方便。示例:
'test','TEST','TeSt','notest' | ? { $_ -match '(?-i)^test' }
test