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