如何批量重命名文件?

BIB*_*IBD 134 windows file-management command-line

我有一堆以模式命名的文件99 - DescriptiveName.txt,我想从前面删除数字,所以我只有DescriptiveName.txt.

我怎样才能做到这一点?我可以从命令行执行此操作还是有可以执行此操作的实用程序?

Jim*_*eth 97

我知道在你的标题中你说“in dos”,但我觉得你只是在寻找一种方法来做到这一点,并且想知道这是否是最好的方法。

我为此找到的绝对最好的工具是Bulk Rename Utility

批量重命名实用程序

它不是命令行工具,但如果您真的想以这种方式使用它,它们确实有命令行版本

我经常使用 GUI 版本,它非常强大、非常快速且非常易于使用。

哦,它是免费供个人使用的。

  • 这是一个超级快速的工具。它使用几种搜索和替换逻辑在几秒钟内解决了我的 6.000 个文件问题。就像使用 Notepad++ 但编辑数千个文件一样。一个很好的解决方案,谢谢! (2认同)

Joe*_*oey 67

一个小的 PowerShell 脚本:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }
Run Code Online (Sandbox Code Playgroud)

结合更复杂的正则表达式,这可能会变成:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*)\.mp3$', '$2 - $1.mp3' }
Run Code Online (Sandbox Code Playgroud)

这将诸如“01 - Beginning.mp3”之类的内容转换为“Beginning - 01.mp3”。

在发出重命名之前,请使用-WhatIf参数 onRename-Item检查重命名。

  • 这救了我。批量重命名实用程序现在崩溃了,我尝试了很多其他解决方案。这对于熟悉正则表达式的人来说要好得多。太感谢了 !! (2认同)

zda*_*dan 25

如果你真的想使用 windows 命令行(如果你不想下载东西),你可以这样做:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l
Run Code Online (Sandbox Code Playgroud)

第一行将文件列表输出到名为 fileList.txt 的文件中。第二行将列表中的每个名称分成 3 部分,#、“-”和名称的其余部分。对于其中的每一个,它都会执行重命名命令。

  • 删除第一行以简化它并执行:`for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l` (3认同)
  • 我知道这是旧的,但它仍然是一个可靠的答案——只有 %l (%L) 应该是 %k (%K) [令牌从 %i (%I) 开始增加,所以 I、J、K...] (2认同)

Gno*_*upi 24

AntRenamer使定义重命名模式变得非常容易;已经准备好了很多(并且它提供了操作的预览):

蚂蚁重命名器

免费用于个人和商业用途。


Wir*_*Guy 19

老套:

您可以执行 DIR 并将输出重定向到文件,如 DIR *.TXT >TEMP.BAT

然后用编辑器去掉不需要的部分,修改需要的部分。添加“@echo off”作为第一行,保存并运行它。


Iva*_*nRF 18

另一种选择: Massive File Renamer

它允许轻松重命名多个文件和文件扩展名。它非常快速和简单!

对于高级用户和开发人员,可以使用正则表达式

看看它在行动:

在此处输入图片说明


Yuv*_*val 13

我使用Total Commander的多重命名工具 (ctrl+M) 来处理这样的事情。他们的有用工具是数不胜数的工具之一,它易于使用,并且在必要时还可以使用正则表达式和模板。哦,在进行任何更改之前,它显然会为您提供预览。

这是我回答的推荐 Total Commander 的第三或第四个问题......我应该从他们那里得到佣金;-)


Esk*_*ola 11

我很满意的工具是ReNamer。它还支持保存重命名规则,这对我很有用,因为我多次进行相同的重命名。

下面是如何删除第一个破折号之前的文本的示例,但您可以定义许多其他规则。

在此处输入图片说明


byt*_*ter 6

对于高级用户和开发人员,我建议使用RegexRenamer

正则表达式重命名器截图

亲:

  • 非常简单的用户界面;
  • 开发人员熟悉的正则表达式;
  • GPLv2;

骗局:

  • 这不是命令行!:)


mat*_*kie 5

为此,我使用了Free Commander Portable(免费软件),效果很好:

  1. 选择或导航到要重命名的文件或目录
  2. 按 [Ctrl-M](或文件 > 多重重命名)
  3. 填写适合您情况的字段
  4. 验证预览显示您期望的内容
  5. 走!