要清理我们的备份文件夹,我编写了一个简短的批处理文件,该文件将通过任务计划程序运行,以定期清除除3个最新副本之外的所有文件。
目前我有以下
for /f "skip=3 eol=: delims=" %%F in ('dir /b /o-d *.sqb ^| findstr /r /c:"LOG_.*"') do @del "%%F"
这适用于包含批处理文件的文件夹中的文件,但是我想从更高级别运行它以检查所有备份,我已经尝试了/ s命令但这些只留下最近的3个所有文件夹的位置,因为我需要保存每个文件夹和子文件夹中的3个最新文件
答案 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