【问题标题】:Command or Script to rename multiple files in windows在 Windows 中重命名多个文件的命令或脚本
【发布时间】:2023-11-21 18:48:01
【问题描述】:

我的硬盘上有大约 400 部电影,但这些电影的名称之间包含点或下划线,例如“wrong_turn.mkv”或“wrong.turn.mkv”。我只想从文件名中删除这些点或特殊字符并保持扩展名不变。 任何命令行命令或 Powershell/Python 或任何其他 Windows 脚本?谢谢。

【问题讨论】:

    标签: windows file powershell command-line


    【解决方案1】:

    在 PowerShell 中,您可以将 Rename-Item 与确定新名称的脚本块一起使用。

    dir -Recurse -Include *.mkv | Rename-Item -NewName { expression to determine new name }
    

    脚本块中的表达式可以使用 $_ 来引用当前的 FileInfo 对象。

    更具体地说:

    dir -Recurse -Include *.mkv | Rename-Item -NewName { $_.Name.Replace('_', ' ') }
    

    使用 Rename-Item -WhatIf 直到正确为止。

    【讨论】:

      【解决方案2】:

      如果您拥有的两个文件位于同一目录中,则从第一个文件中删除 _ 将起作用,但是当您尝试从第二个文件中删除点时,它将失败,因为它的名称与第一个。也许这是一个边缘情况,所以这是基本的解决方案:

      Get-ChildItem -Filter *.mkv | Rename-Item -NewName {($_.BaseName -replace '\.|_') + $_.Extension}
      

      【讨论】: