删除文件夹和子文件夹中除最近3个以外的所有文件

时间:2015-11-26 15:51:13

标签: windows batch-file subdirectory

要清理我们的备份文件夹,我编写了一个简短的批处理文件,该文件将通过任务计划程序运行,以定期清除除3个最新副本之外的所有文件。

目前我有以下

for /f "skip=3 eol=: delims=" %%F in ('dir /b /o-d *.sqb ^| findstr /r /c:"LOG_.*"') do @del "%%F"

这适用于包含批处理文件的文件夹中的文件,但是我想从更高级别运行它以检查所有备份,我已经尝试了/ s命令但这些只留下最近的3个所有文件夹的位置,因为我需要保存每个文件夹和子文件夹中的3个最新文件

1 个答案:

答案 0 :(得分:1)

首先按目录递归循环:

for /r /d %%a in (*) do (
    for /f "skip=3 eol=* delims=" %%b in ('dir /b /a-d /o-d "%%a\*LOG*.sqb"') do (
        del "%%~fb"
    )
) 2>nul
相关问题