繁体   English   中英

批处理文件,删除每个文件名中除最后10个文件外的所有文件

[英]Batch file that deletes all but the last 10 per file name

我有多个文件夹,其中多个文件具有相同的名称,然后带有一个时间戳。 例:

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"

再说一遍,这绝对不是我的专长

@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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM