我有多个文件夹,其中包含多个具有相同名称的文件,然后是时间戳。例如:
foo_2017.01.16.png
foo_2017.01.15.png
foo_2017.01.14.png
bar_2017.01.16.png
bar_2017.01.15.png
bar_2017.01.14.png
file_2017.01.16.png
file_2017.01.15.png
file_2017.01.14.png
我需要做的是创建一个批处理文件,该文件将仅解析_timestamp之前的名称并保留每个文件名的最后10个。我不是很精通批处理,可以在这里真正使用一些帮助。每个文件的修改日期是相同的,所以我不能只说保留最近10天,否则我可以处理。
编辑:
我有一个批处理文件,删除超过28天的特定文件夹中的文件,如下所示,我只是不知道如何修改它以专门针对每个文件名进行迭代,而不是按修改日期去:
/c echo @FILE
forfiles -p "C:\workspace\SeleniumTestResults" -s -m *.* /D -28 /C "cmd /c del @path"
同样,这批次肯定不是我的区域
答案 0 :(得分:2)
@echo off
setlocal
REM create some files for testing:
break>foo_2017.01.16.png
break>foo_2017.01.15.png
break>foo_2017.01.14.png
break>bar_2017.01.16.png
break>bar_2017.01.15.png
break>bar_2017.01.14.png
break>file_2017.01.16.png
break>file_2017.01.15.png
break>file_2017.01.14.png
dir *.png
set keep=2
for /f "delims=_" %%a in ('dir /b *.png') do (
for /f "skip=%keep% delims=" %%b in ('dir /b /o-n "%%~a*.png"') do del "%%b"
)
dir *.png