我发现 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$' }