2016-12-19 64 views
-1

字符我有一個​​名爲像多個文件夾:FirstName_LastName(12345)替換文件夾名稱並在括號中

我想刪除以外的所有括號給12345

我認爲這可行,但它說正則表達式模式*(*)無效。

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

我使用Windows PowerShell。

+0

這個命令單獨'Get-ChildItem'*(*)''的作品? – Hackerman

+0

是的,如果我命名這些項目,它會返回正確的項目。 –

+3

'$ _。Name -replace'。* \((。*)\)','$ 1'' –

回答

3

-replace以正則表達式模式爲參數,在正則表達式中,*是一個量詞,意思是「0或更多」。您還需要逃離()

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

$1是反向引用第一個捕獲組,即。無論是否匹配.*(.*)模式的一部分

+0

非常有幫助的解釋,謝謝! –

相關問題