问题描述
我的操作系统是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
按日期/时间排序,/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
。
感谢斯蒂芬给我的启发
这是解决此问题的批处理脚本,
@echo off
for /f "tokens=1,* delims=:" %%a in ('dir /od /a-d /b ^|findstr /N "^"') do ren "%%b" "%%a. %%b"