大量重命名文件夹中具有不同前缀的文件

时间:2017-09-27 08:51:16

标签: cmd rename file-management

File names

上图是文件结构的一个例子。

我查看过许多cmd行进行大规模重命名,但它们都有相同的前缀或相同数量的字符。

有没有办法重命名具有不同前缀的多个文件,但保留文本和文件类型。所以111 tiger.txt到tiger.txt和32133_lion.txt到lion.txt。

1 个答案:

答案 0 :(得分:0)

这在PowerShell中相对容易。关键是使用正则表达式匹配去除前导数字和'_'和空格。

C:>type .\rd\doit.ps1
[cmdletbinding()]
Param()

Get-ChildItem "C:\src\t\rd" |
    ForEach-Object {
        $_.Name -match "\d*[_ ]*(.*)" | Out-Null

        if ($matches[1] -ne $null) {
            if ($_.Name -ne $matches[1]) {
                Rename-Item $_.FullName $matches[1] -WhatIf
            }
        }
    }

如果您认为将完成正确的重命名,请从-WhatIf命令中删除Rename-Item

C:>.\rd\doit.ps1
What if: Performing the operation "Rename File" on target "Item: C:\src\t\rd\123dog.txt Destination: C:\src\t\rd\dog.txt".
What if: Performing the operation "Rename File" on target "Item: C:\src\t\rd\124cat.txt Destination: C:\src\t\rd\cat.txt".