用于在Windows中重命名多个文件的命令或脚本

时间:2012-03-29 13:48:03

标签: windows file powershell command-line

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

在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直到你做对了。