我只想筛选名称以2[A-Z]开头的文件和文件夹(仅限大写):
2[A-Z]
ls -recurse | Where-Object {$_.name -match '2[A-Z]'}
但它仍然返回小写文件。阅读Where-Object的-match参数时,我没有看到解决这个问题的方法。
Where-Object
-match
r1zk6ea11#
PowerShell的比较运算符在默认情况下不区分大小写*,但它们具有**c前缀变体**,这些变体区分大小写*,即在-match运算符的情况下为**-cmatch**:
c
-cmatch
gci -recurse | Where-Object { $_.Name -cmatch '^2[A-Z]' }
gci
Get-ChildItem
ls
^
或者,使用**simplified syntax**:
gci -recurse | Where-Object Name -cmatch '^2[A-Z]'
1条答案
按热度按时间r1zk6ea11#
PowerShell的比较运算符在默认情况下不区分大小写*,但它们具有**
c
前缀变体**,这些变体区分大小写*,即在-match
运算符的情况下为**-cmatch
**:gci
用作Get-ChildItem
的仅Windowsls
别名的PowerShell惯用替代方法。^
用于确保模式仅在文件名的 * 开始 * 处匹配。或者,使用**simplified syntax**: