批量重命名文件(并可能切换名称的部分内容)

批量重命名文件(并可能切换名称的部分内容)

我正在整理 60,000 多张图片,需要编辑它们的名称。我很想批量重命名,否则这可能需要 60 多个小时。

名称类似于以下内容:2013-10-27 17_46_28-pro image plus 18234

我需要将“pro image plus 18234”替换为“2013-10-27 17_46_28”(在单词 pro 之前的连字符周围(尽管单词 pro 确实会发生变化)),或者如果这不可能,则完全删除“2013-10-27 17_46_28-”。绝对更喜欢切换名称的各个部分而不是删除,以提高我的记录的完整性。

起始字符的数量始终相同,但在连字符之后(此示例中为 pro 之前),字符的数量会有所不同。

愿意下载程序并使用所需的任何代码(虽然我根本不是一个程序员,所以第一次使用时我需要一些代码方面的帮助)

非常感谢,John Fielder(抱歉,如果已经有关于此问题的论坛,我找了一下,没有找到任何东西)

答案1

您可以尝试这样的操作(在包含文件的任何目录中运行它):

@echo off
setlocal

FOR /F "delims=" %%A IN ('dir /s /b /a:-d *.*') DO (
  CALL :swap "%%A"
)

GOTO :EOF

:swap
  set fileDir=%~dp1
  set filename=%~n1
  set ext=%~x1

  set firstPart=%filename:~0,19%
  set secondPart=%filename:~20%
  move "%~f1" "%fileDir%%secondPart%-%firstPart%%ext%"
GOTO :EOF

笔记:

  • 它将重命名当前目录或任何子目录中的任何内容。
  • 您可能需要修改 dir 命令以更具体地说明要重命名哪些文件。
  • 可能应该仔细检查偏移量。根据您的示例,第一位似乎有 19 个字符长。我还假设您想保留两部分之间的破折号。
  • 实际上,在移动命令前面加上一个回声可能是一个好主意,然后以这种方式运行一次,以确保结果符合您的期望。

我尝试用它处理一个相当简单的工作量,它似乎有效,但结果可能有所不同。

答案2

我总是使用这个程序:http://www.den4b.com/?x=products&product=renamer

设置起来非常简单,不需要任何编程,你设置规则,它就会按顺序执行。在这种情况下,你首先需要规则“替换”,然后可能是“删除”位置 10~ 直到结束,然后是“序列化”后缀,填充长度为 3。

使用该程序,因为它很简单,您可以将文件或多个文件夹拖放到其中。拖动时始终从第一个文件开始拖动,否则会打乱顺序。

答案3

您可以使用批量重命名工具从此处下载

正在习惯的用户界面。他们有很好的教程这里帮助你

相关内容