在 powershell 中指定正则表达式点 `.` 和 `..` 来查找文件/目录?

在 powershell 中指定正则表达式点 `.` 和 `..` 来查找文件/目录?

我发现 powershell 在某些方面可以在一定程度上执行正则表达式。毫无疑问它可以做更多,但我不明白为什么它不在这里。我正在尝试使用正则表达式来指定文件/目录。

例如,当我有一个名为“qwe”的目录时,它将显示它

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\[qwe][qwe][qwe]

d----        24/08/2014   1:28 PM            qwe

但我不能这样做

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\q.e

(获取 qwe 目录)

如果我这么做

PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\..

然后它返回一个目录,我找不到任何办法使它与 2 个以上字符甚至 2 个字符的文件/目录匹配,使用正则表达式..

但是,它确实支持正则表达式 [abcd](用于匹配“a”或“b”或“c”或“d”)或 [az] 的这个方面,尽管它有点像非正则表达式,因为 [abcd] 仅匹配结果为一个字符的情况。使用正确的正则表达式,它通常会匹配带有该字符的任何内容,包括当那里有多个字符时。

答案1

点对于文件名有特殊含义,因此您必须使用 Where-Object(或其缩写形式)进行此类过滤:

Get-ChildItem . | Where-Object { $_.Name -match '^q.e$' }

相关内容