如何编写一个批处理文件,对具有特定扩展名的文件进行编号,如果计数超过10,则删除除最新文件以外的所有文件

时间:2015-11-08 17:36:56

标签: batch-file

我有一个程序将统计文件(*.csv)拉入目录,解析特定数据,将数据放入数据库,然后重命名文件(.csv.med)。有时这不起作用,.csv文件在系统资源挂钩时开始累积。

我要做的是编写一个批处理文件,检查.csv个文件的数量,如果该数字大于10,则删除除最新文件之外的所有文件。

我使用以下命令删除除最新版本之外的所有内容,但需要一种方法将其与编号文件的命令联系起来。

for /f "skip=1 eol=: delims=" %%F in ('dir *.csv /b /o-d /tw /a-d') do @del "%%F

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

FOR /f %%G IN ('dir *.csv /b ^|FIND /c "."') DO IF %%G gtr 13 (
 for /f "skip=1 eol=: delims=" %%F in ('dir *.csv /b /o-d /tw /a-d') do ECHO del "%%F"
)

为了测试目的,所需的DEL命令仅为ECHO在您确认命令正确后,将ECHO DEL更改为DEL以实际删除文件。 <{1}}不是必需的。

我已使用@作为我的触发点,因为这适合我的系统。你使用10。

基本上,使用目标文件掩码的基本格式执行13列表,然后计算包含dir的行数并将该数字指定给.。如果%%G大于要求,请删除文件。

(我认为你的意思是&#34;伯爵&#34;文件,而不是&#34;数字&#34;他们)