文件命名为20160825()。xlsx
在没有对文件名进行任何更改的情况下尝试了这两项
Get-ChildItem "C:\Users\..." -Filter “*()*” -Recurse | Rename-Item NewName {$_.name -replace ‘()’,’’ }
Get-ChildItem "C:\Users\..." -Filter “*()*” -Recurse | Rename-Item -LiteralPath -NewName {$_.name -replace ‘()’,’’ }
答案 0 :(得分:1)
-replace
使用正则表达式(regex),这是一种具有不同规则的不同语言,括号是用于分组的特殊字符,它们需要进行转义才能完全匹配。尝试:
$_.name -replace '\(\)'
答案 1 :(得分:1)
您可以让PowerShell / .net执行转义:
$RE = [RegEx]::escape("()")
Get-ChildItem "C:\Users\..." -Filter "*()*" -Recurse |
Rename-Item NewName {$_.Name -Replace $RE}
BTW我会避免使用一个用印刷替换引号的编辑器。