我有一堆文件,格式如下:
00092-100221-01M-V-3-20-001 Building A, plan 1M Piping
我只想重命名同时包含单词“ Building A”和“ Piping”的文件,所以我尝试了以下代码
dir -filter "*Building A*", "*Piping*" | Rename-Item -NewName {$_.basename + " As built" + $_.extension}
但我收到一条错误消息,指出参数-filter不支持此方法。有没有一种方法可以在Powershell中过滤两个条件?
该-Filter
参数仅接受一个参数。您可以使用-Include
参数,但这可能很棘手(请参阅docs)。
通常,最简单的过滤管道元素的方法是Where-Object:
dir | where { $_.Name -match "Building A" -and $_.Name -match "Piping" } | Rename-Item ...
注意:-match
运算符使用正则表达式匹配,在这种情况下可以使用。您还可以将-like
运算符与通配符一起使用:$_.Name -like "*Piping*"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句