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:\test
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

注:以上脚本不删除文件只做测试。测试完成删除del 前面的echo 就可以了

替换前:

forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c echo del /f /q /a  @path" 

替换后:

forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a  @path" 

参考:https://www.cnblogs.com/su-root/p/12348178.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值