如何使用批处理文件按 WIndows 上创建的日期自动重命名文件排序

How to automaticily rename file sort by date created on WIndows using batch file

我的OS是Windows

我的文件是:

FILENAME DATECREATED
Jack.txt 3 AM
John.txt 4 AM
Mary.txt 5 AM
Paul.txt 1 AM

那么如何按使用此模式创建的日期批量自动重命名文件:

预期结果:

FILENAME    DATECREATED
1. Paul.txt 1 AM
2. Jack.txt 3 AM
3. John.txt 4 AM
4. Mary.txt 5 AM

我听说这个问题有一些脚本,但我也不确定

任何帮助将不胜感激

谢谢

首先,以正确的顺序获取文件(/od 按 date/time 排序,/a-d 排除文件夹名称,/b 只列出文件名。参见 dir /? 了解详情)。
然后给它们编号(通过管道将它们传送到 findstr /N。有关详细信息,请参阅 findstr /?)。
然后使用 for /f 循环将输出分解为数字和文件名,并根据您的需要重新组合它们(有关详细信息,请参阅 for /?

@echo off
for /f "tokens=1,* delims=:" %%a in ('dir /od /a-d /b ^|findstr /N "^"') do ECHO ren "%%b" "%%a. %%b"

注意:我只是通过回显来“解除”ren 命令。当输出满足您时,只需删除 ECHO.

感谢Stefan的指教

这是解决这个问题的批处理脚本,

@echo off
for /f "tokens=1,* delims=:" %%a in ('dir /od /a-d /b ^|findstr /N "^"') do ren "%%b" "%%a. %%b"