如何在特定单词后批量重命名文件?

时间:2017-11-09 08:34:52

标签: powershell batch-file cmd batch-rename

例如

  

测试-123-abc.mp4
  测试-456-def.mp4

我希望在_-之后删除所有内容。所以结果应该是:

  

123.mp4
  456.mp4

是否可以使用Windows cmd或批处理文件,PowerShell重命名?

2 个答案:

答案 0 :(得分:0)

我假设所有文件名都采用相同的格式。 这只是一个例子,你必须自己编写脚本。如果您遇到任何问题,请发布脚本。

Get-ChildItem -Path D:\Videos -File | Rename-Item -NewName { $_.Name -replace "Combo.*","Combo.mp4" }

实施例

'test-123-abc.mp4' -replace '.*-(.*)-.*(\..*)','$1$2'
123.mp4
'test-456-def.mp4' -replace '.*-(.*)-.*(\..*)','$1$2'
456.mp4

'TRG-21-Aries Combo-JM5rowKV9TU.mp4' -replace 'Combo.*','Combo.mp4'
TRG-21-Aries Combo.mp4

答案 1 :(得分:0)

听起来您希望重命名发生在目录中的所有.mp4文件中。如果是这样,这可能会奏效。如果您对文件将被正确重命名感到满意,请从Move-Item命令中删除-WhatIf

Get-ChildItem -Filter *.mp4 |
    ForEach-Object {
        $newname = $_.Name -replace '(.*)[-_].*(\..*)','$1$2'
        Rename-Item -Path $_.FullName -NewName $newname -WhatIf
    }