Powershell 如何删除文件名中括号内的所有字符串?

Powershell 如何删除文件名中括号内的所有字符串?,powershell,Powershell,我在从文件名中删除(*)时遇到问题 我尝试了以下代码: get-childitem "[Filepath]\*.txt" | foreach { rename-item $_ $_.Name.Replace(\(*\), "") } 我想说的是: 原名:AAA BBB(DDDD)(BLAH).txt 必选结果:AAA BBB.txt在您的必选结果中,您还删除了空格,因此我认为这就是您要查找的正则表达式: '\s*\([^)]+\)' 这里有一个例子: 'AAA BBB (DDDD) (BL

我在从文件名中删除(*)时遇到问题

我尝试了以下代码:

get-childitem "[Filepath]\*.txt" | foreach { rename-item $_ $_.Name.Replace(\(*\), "") }
我想说的是:

原名:AAA BBB(DDDD)(BLAH).txt


必选结果:AAA BBB.txt

在您的必选结果中,您还删除了空格,因此我认为这就是您要查找的正则表达式:

'\s*\([^)]+\)'

这里有一个例子:

'AAA BBB (DDDD) (BLAH).txt' -replace '\s*\([^)]+\)'
输出:

AAA BBB.txt

这也适用于
AAA BBB(DDDD)附加文本(BLAH).txt
并将其命名为
AAA BBB Additional Text.txt
,删除多余的空格并忽略括号内对之间的附加文本。谢谢,Martin!干得漂亮!我就是无法让它与“Foreach”
getchilditem“[Filepath]\*.txt”\124;重命名Item-NewName{$\u.name-replace'\s*\([^]+\),“}
它与
getchilditem”[Filepath]\*.txt”
有关。您不能使用
get childitem-Filter*.txt