根据名称

时间:2017-04-05 03:29:58

标签: batch-file

我有一个批处理文件,可以将文件存档为ZIP格式为" DAILY-yyyymmdd"我想只保留15天的文件。例如DAILY-20170405,DAILY-20170504。

我想知道是否有办法使用forfile(或类似的)根据文件的名称(而不是日期/时间戳)删除文件?我不能使用日期/时间戳,因为有时它们会被破坏,可能会落后/向前几周。

我使用了以下内容,但这使用了日期/时间戳: for / f" skip = 15 eol =:delims =" %% F in(' dir / b / o-d * .7z')do(del" %% F")

1 个答案:

答案 0 :(得分:1)

您的命名方案允许对日期进行字典排序,因此您只需按名称(而不是日期)进行反向排序:

for /f "skip=15 eol=: delims=" %%F in ('dir /b /o-n *.7z') do ( del "%%F" )