美文网首页
Windows bat脚本清理Navicat备份文件,支持保留最

Windows bat脚本清理Navicat备份文件,支持保留最

作者: 承诺一时的华丽 | 来源:发表于2023-06-07 16:51 被阅读0次

1、清理无用的备份文件(按最新文件个数保留)

适用于特大备份文件

  • folder包含1级别目录
rem 需要清理的目录,支持多个文件夹英文逗号隔开,斜线\结尾

chcp 65001 >nul

setlocal enabledelayedexpansion

set "folder=F:\zlsc\处理脚本\测试处理\,F:\zlsc\处理脚本\测试处理2\"
set "filePattern=*.psc"
set "maxFiles=10"
rem 建议修改为绝对路径
set "logFile=logfile.txt"
 
echo 获取目录下的所有文件,并按修改日期排序 %folder%  >> %logFile%
echo =============  正在按最新文件个数清理备份文件,请稍等...... %date% %time%  ============== >> %logFile%

 
for %%F in (%folder%) do (
    for /d %%i in (%%F*) do (
        echo  遍历文件夹: %%i  >> %logFile%
        
        cd /d %%i
        set n=0
        for /f "delims=" %%a in ('dir /a-d-h /b /o-d "%filePattern%"') do (         
            echo  遍历文件: %%~a  >> %logFile%
            if !n! geq %maxFiles%  del "%%~a"
            set /a n+=1 
        )
    )
) 
echo =============  按最新文件个数清理备份文件,完成! %date% %time%  ============== >> %logFile%
exit

*folder不包含目录,直接为文件

rem 需要清理的目录,支持多个文件夹英文逗号隔开,斜线\结尾
@echo off
chcp 65001 >nul

setlocal enabledelayedexpansion

set "folder=F:\zlsc\处理脚本\测试处理\1,F:\zlsc\处理脚本\测试处理\2"
set "filePattern=*.psc"
set "maxFiles=1"
set "logFile=logfile.txt"
 
echo 获取目录下的所有文件,并按修改日期排序 %folder%  >> %logFile%


for %%F in (%folder%) do (
    cd /d  %%F
    set n=0
    for /f "delims=" %%a in ('dir /a-d-h /b /o-d "%filePattern%"') do (         
        echo  遍历文件: %%~a  >> %logFile%
        if !n! geq %maxFiles%  del "%%~a"
        set /a n+=1 
    )
)
exit

2、清理无用的备份文件(按最新文件天数保留)

适用于非特大备份文件

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

set "logFile=F:\zlsc\处理脚本\logfile.txt"

echo =========================  正在按最新文件天数清理备份文件,请稍等...... %date% %time%  ========================= >> %logFile%
rem 需要清理的目录
set logFilePath=E:\MariaDB数据库备份\,E:\Log\,E:\Oracle数据库备份\
rem 只保留几天内的文件
set bak_dat=3
for %%F in (%logFilePath%) do (
    rem 遍历所有文件夹
    for /d %%i in (%%F*) do (
        cd /d %%i
        forfiles /p %%i /s /m *.psc /d -%bak_dat% /c "cmd /c del @path"
    )
)

echo =========================  按最新文件天数清理备份文件,完成! %date% %time%  ========================= >> %logFile%
exit

提示:输出日志时,中文乱码,需要将文件另存为utf8格式

相关文章

网友评论

      本文标题:Windows bat脚本清理Navicat备份文件,支持保留最

      本文链接:https://www.haomeiwen.com/subject/hotoedtx.html