我有一个程序将统计文件(*.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
非常感谢任何帮助。
答案 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;他们)