Powershell 删除“;(1) ";来自跨越多个目录的多个文件名

Powershell 删除“;(1) ";来自跨越多个目录的多个文件名,powershell,filenames,Powershell,Filenames,所以我在重新下载我的google drive备份,我注意到在每个文件中,无论它在我的目录和/或子目录中有多深,它的名称都是“(1)”,我想知道是否要删除它。 Iv获取获取子项foreach{rename item$\u$\.Name.Replace(“(1)”,”)}但这仅适用于此目录,我需要更深入一些。 提前谢谢 更新:获得“get childitem-recurse | rename item-newname{$\.name-replace”(1)”,“}” 但是,它会抛出一个错误: 重命名

所以我在重新下载我的google drive备份,我注意到在每个文件中,无论它在我的目录和/或子目录中有多深,它的名称都是“(1)”,我想知道是否要删除它。 Iv获取
获取子项foreach{rename item$\u$\.Name.Replace(“(1)”,”)}
但这仅适用于此目录,我需要更深入一些。 提前谢谢

更新:获得“get childitem-recurse | rename item-newname{$\.name-replace”(1)”,“}” 但是,它会抛出一个错误: 重命名项:源路径和目标路径必须不同。 第1行字符:26

  • 。。。lditem-recurse | rename item-newname{$|.name-replace“(1)”,“}
    • CategoryInfo:WriteError:(C:\Users\Opti\D…rgs(1)\lib(1):字符串)[重命名项],IOException
    • FullyQualifiedErrorId:RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand
编辑:Get ChildItem-Path“C:\My\Root\Path”-Filter“(1)”-Recurse | Foreach{Rename Item-Path$.FullName-NewName$.Name.Replace(“(1)”,)}
^这对我来说很有用

使用递归标志搜索嵌套文件夹

Get Childitem-Path“C:\My\Root\Path”-Recurse |
[do stuff]

这个怎么样

Get-ChildItem -Path "C:\My\Root\Path" -Recurse | Foreach {Rename-Item -Path $_.FullName -NewName $_.Name.Replace('(1)','')}

您能详细说明一下吗?它只响应重命名项:无法重命名,因为“v16(1)”处的项不存在。第1行字符数:37+。。。em-递归| foreach{rename item$$$\.Name.Replace(“(1)”,”)}+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~类别信息:InvalidOperation:(:)[rename item]、PSInvalidOperationException+FullyQualifiedErrorId:InvalidOperation,Microsoft.PowerShell.Commands.Rename ItemCommand对于每个文件,您还可以将
-Filter“*(1)。*”
添加到
Get ChildItem
中,以避免在不需要重命名时不必要地调用
Rename Item
。这是正确的<代码>获取ChildItem-路径“C:\My\Root\Path”-过滤器“*(1)*”-递归| Foreach{Rename Item-Path$\uu.FullName-NewName$\uu.Name.Replace('(1)'”)}噢,谢谢。我很高兴听到它成功了
Get-ChildItem -Path "C:\My\Root\Path" -Recurse | Foreach {Rename-Item -Path $_.FullName -NewName $_.Name.Replace('(1)','')}