zoukankan      html  css  js  c++  java
  • Windows 删除指定N天前的文件

    工作中,往往备份的数据很多,有时候把磁盘都干没了,系统无法运行了才知道空间没了,所有我们需要定期清理过期的备份数据,Windows下bat批处理,自动获取文件的最后修改时间,然后将指定多少天之前的文件删除,需要Windows支持forfiles命令,XP及以上系统都自带forfiles命令;详情如下:

    1.在本地新建一个del.txt,将一下代码复制进去, 然后将扩展名改为bat格式。

    @echo 删除指定路径下指定N天前的文件  
    @echo off
    @echo.----------------------------------------------------------------------
    @echo.**********************************************************************
    @echo.   温馨提醒:
    @echo.      1.以管理员身份运行
    @echo.      2.以文件的最后修改日期为准
    @echo.      3.需要系统自带的forfiles命令的支持
    @echo.      4.使用时请先测试,删除的数据不可恢复
    @echo.      5.如果测试结果无误,把del前面的echo去掉,即可实现真正删除
    @echo.----------------------------------------------------------------------
    @echo.
    
    rem 指定待删除文件的存放路径
    set SrcDir=E:	est
    rem 指定几天前的文件
    set DaysAgo=7
    @echo.----------------------------------------------------------------------
    @echo 正在扫描 %SrcDir%路径下%DaysAgo%天前的备份文件......
    
    rem 下面命令为真正删除符合条件的文件日志记录
    forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c echo  正在删除 del /f /q /a  @path"  >>./%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%time:~0,2%%time:~3,2%.log
    
    @echo.
    @echo 正在删除文件中......
    
    rem 下面命令为真正删除符合条件的文件且不可恢复
    forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c echo del /f /q /a  @path"  
    @echo 删除已完成,若想查看具体删除了哪些文件请看本地删除日志
    @echo.
    pause exit

    测试如下:

    我们需要删除E: est路径下7天前的所有文件

     执行del.bat结果如下:

    我们再看看文件下是否真正删除了符合条件的:

    is ok !

    如果需要备份+删除的批处理文件的话,只需要在上边代码倒数第二行中添加一个备份命令即可。

    如下:

    @echo 正在备份数据中......
    EXPDP 用户/密码@数据库IP/实例名 schemas=用户 directory=DATA_PUMP_DIR dumpfile=BDCDJ%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%time:~0,2%%time:~3,2%.dmp logfile=BDCDJ%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%time:~0,2%%time:~3,2%.log
    @echo 数据备份已完成!
    @echo.

    我们可以在机器上创建一个定时计划任务,每天自行执行脚本判断清理过期的备份数据。

    1.  开始-->所有程序-->附件-->系统工具-->任务计划程序
    2.  任务计划程序(本地)-->任务接话程序库-->创建基本任务-->
    3.  输入 名称:  描述:点击下一步
    4.  触发器:设置周期
    5.  设置详细时间
    6.  操作选择 启动程序
    7.  选择要执行的bat脚本就是上面所写好的脚本
    8.  点击完
    注:验证是否能够成功执行计划任务,在计划任何的执行界面中配置的启动时间提前当前时间2分钟,待显示上次成功执行(0X0返回码表示成功执行)以后确认定时任务可以成功执行。
  • 相关阅读:
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & ManacherK
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher J
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher I
    pat 1065 A+B and C (64bit)(20 分)(大数, Java)
    pat 1069 The Black Hole of Numbers(20 分)
    pat 1077 Kuchiguse(20 分) (字典树)
    pat 1084 Broken Keyboard(20 分)
    pat 1092 To Buy or Not to Buy(20 分)
    pat 1046 Shortest Distance(20 分) (线段树)
    pat 1042 Shuffling Machine(20 分)
  • 原文地址:https://www.cnblogs.com/su-root/p/12348178.html
Copyright © 2011-2022 走看看