将每个文件重命名为递增的整数

将每个文件重命名为递增的整数

我有一个 mp3 文件目录,按以下顺序排序Date created

newest.mp3
new.mp3
old.mp3
older.mp3
oldest.mp3

我想用新名称重命名此目录中的每个文件,其中包含每个文件增加的整数值(从最新文件开始):

newest.mp3 --> new_name_1.mp3
new.mp3    --> new_name_2.mp3
old.mp3    --> new_name_3.mp3
older.mp3  --> new_name_4.mp3
oldest.mp3 --> new_name_5.mp3

我如何才能自动执行此操作(而不需要手动处理rename每个文件)?

具体来说,我正在寻找一个可以执行此操作的命令:

sort each file by date created
i = 1
for each fil in dir:
    rename file: new_name_$i++.mp3

答案1

这是实现此目的的方法

setlocal enabledelayedexpansion
set "count=1"
for /f "delims=*" %%f in ('dir /b /o:-d /tc *.mp3') do (
    ren %%f new_name_!count!.mp3
    set /a count+=1
)
  • dir /b:以裸格式输出文件(仅文件名)
  • /o:-d:按日期排序,最新优先
  • /tc:按创建日期排序。您可能希望将访问时间和修改时间的 C 更改为 A 或 W

然后使用以下方法读取输出的每一行for /f

为了使其适用于任何目录,请将循环更改为

for /f "usebackq delims=*" %%f in (`dir /b /o:-d /tc "%1\*.mp3"`)

并在第一个参数中传递目录

要获取 Windows cmd 中任何命令的帮助,只需使用/?

答案2

虽然这可以编写脚本,但在对您的问题的评论中,您没有编写脚本。

有许多免费的文件重命名实用程序可以完成您想要的操作。 批量重命名实用程序是您可以搜索的众多中的一个。

相关内容