使用CMD或Powershell对中间只有一个公共因子的文件进行大容量重命名



好吧,这有点奇怪,但我有一些文件的名称像file_ytd.test.dds、file2_ytd.test.dds、file3_ytd.test_dds、file_ytd.noticest.dds

我想重命名它们,使它们成为

测试.dds,符号测试.dss

当然,它会删除我想在powershell中使用此命令的重复项,但我需要手动键入每个"的全名;file_ytd"类型,并且我在400k文件中有大约100k个不同的变体

``` Dir | rename-item -NewName {$_.name -replace "file_ytd." ""} ```

对此,最好的方法是什么?

如果我理解正确的话,他会成功的。

-WhatIf参数添加到Rename-ItemRemove-Item中,这样您就可以查看它是否在执行您想要的操作。

Get-ChildItem |
select fullName , @{N='NewName';E={$_.BaseName.Split('.')[-1]+$_.Extension}} |
group NewName | foreach {
Rename-Item -Path $_.Group[0].FullName -NewName $_.Name -WhatIf
If ($_.Count -gt 1)
{
$_.Group[1..($_.Count -1)].FullName | Remove-Item -WhatIf
}
}

最新更新