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

Powershell 用括号中的字符替换文件夹名称,powershell,Powershell,我有多个名为:FirstName\u LastName(12345) 我想删除除括号以外的所有内容,以给出12345 我原以为这样行得通,但它说正则表达式模式*(*)无效 Get ChildItem'*(*)'|重命名Item-newname{$\u.name-Replace'*(*)','*') 我正在使用Windows PowerShell。-replace将正则表达式模式作为其参数,在正则表达式中,*是一个表示“0或更多”的量词。您还需要转义(): $1是对第一个捕获组的反向引用,即模式的

我有多个名为:
FirstName\u LastName(12345)

我想删除除括号以外的所有内容,以给出
12345

我原以为这样行得通,但它说正则表达式模式
*(*)
无效

Get ChildItem'*(*)'|重命名Item-newname{$\u.name-Replace'*(*)','*')


我正在使用Windows PowerShell。

-replace
将正则表达式模式作为其参数,在正则表达式中,
*
是一个表示“0或更多”的量词。您还需要转义
()


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

仅此命令
Get ChildItem'*(*)'
起作用?是的,如果我命名这些项目,它将返回正确的项目。
$.name-替换'*\(.*),'$1'
谢谢!这已经困扰我一段时间了!如果你将此作为答案发布,我会将其设置为我接受的答案。
Get-ChildItem '*(*)' | Rename-Item -newname { $_.name -Replace '.*\((.*)\)','$1' }