我有一个 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
虽然这可以编写脚本,但在对您的问题的评论中,您没有编写脚本。
有许多免费的文件重命名实用程序可以完成您想要的操作。 批量重命名实用程序是您可以搜索的众多中的一个。