我有一堆如下格式的文件:
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中过滤两个条件?
发布于 2020-11-02 16:28:43
-Filter参数只接受一个参数。您可以使用-Include参数,但这可能很棘手(请看docs)。
一般而言,过滤管道元素的最简单方法是Where-Object
dir | where { $_.Name -match "Building A" -and $_.Name -match "Piping" } | Rename-Item ...注意:-match操作符使用正则表达式匹配,这在本例中很好用。您还可以使用带有通配符的-like运算符:$_.Name -like "*Piping*"
https://stackoverflow.com/questions/64642007
复制相似问题