我想使用 DIR 按时间戳对以下文件进行排序,该时间戳在文件名中定义 - 最旧的在前: 时间戳 = YYYYDDMM
NAME_20121410.dat
NAME_20121509.dat
NAME_20121609.dat
结果应如下所示:
NAME_20121509.dat
NAME_20121609.dat
NAME_20121410.dat
如何用一行代码实现这一目标?
最佳答案
由于日期格式很愚蠢,您需要先拆分文件名,然后对重新排列的名称进行排序。
不是一个单行代码,但它可以工作(在批处理文件内)。
@echo off
(
for %%A in (*_*.dat) do @(
call set "name=%%A"
call set "nameDate=%%name:*_=%%"
call set "Year=%%nameDate:~0,4%%"
call set "Day=%%nameDate:~4,2%%"
call set "Month=%%nameDate:~6,2%%"
call echo %%Year%%%%Month%%%%Day%% %%name%%
)
) | sort | (
for /F "tokens=1,* delims= " %%A in ('more') DO @echo %%B
)
关于windows - 使用 Windows DIR 命令按时间戳对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12494219/