用括号中的字符替换文件夹名称

时间:2016-12-19 15:55:19

标签: powershell

我有多个名为FirstName_LastName(12345)

的文件夹

我想删除除括号以外的所有内容以提供12345

我认为这样可行,但它说正则表达式模式*(*)无效。

Get-ChildItem '*(*)' | Rename-Item -newname { $_.name -Replace '*(*)','*' }

我正在使用Windows PowerShell。

1 个答案:

答案 0 :(得分:3)

-replace采用正则表达式作为参数,在正则表达式中,*是一个量词意义" 0或更多"。您还需要逃离()

Get-ChildItem '*(*)' | Rename-Item -newname { $_.name -Replace '.*\((.*)\)','$1' }

$1是对第一个捕获组的反向引用,即。在模式的.*部分(.*)匹配的任何内容