使用-Replace 重命名项目,并使用多种模式

使用-Replace 重命名项目,并使用多种模式

考虑以下文件:

文件1(自定义).jpg
文件2(自定义).jpg

我需要重命名文件以从其名称字符串中去掉“(自定义)”和/或“(自定义)”(请注意左括号前的空格)。

使用 做一个很容易Rename-Item -NewName {$_.name -replace " \(Custom\)", ""},但我想同时做两个(可能还有额外的字符串模式)

看起来,我很难向 Google 提出正确的问题。

答案1

阅读@Seth 建议的有关正则表达式的内容。很多时候你会在-matchpowershell 中使用正则表达式,但其他 cmdLets 也喜欢-replaceselect-string使用它们。

您似乎已经知道需要使用反斜杠转义特殊字符(如括号)。您可以使用 匹配空格字符,\s并使用 指定 0 个或多个匹配项*。接下来,您可以使用 OR 运算符(管道字符)|来匹配多个选项之一 (x|y|z)(x 或 y 或 z)。

"file 1 (fred).jpg" -replace "\s*(\(fred\)|\(barney\)|\(wilma\))", ""
file 1.jpg

"file 2(barney).jpg" -replace "\s*(\(fred\)|\(barney\)|\(wilma\))", ""
file 2.jpg

相关内容