使用forfiles自动删除Windows系统中历史文件的教程

TangLu 运维 2018-07-16 3661 0
在Linux下要实现这个使用的命令是find,然后结合计划任务即可,在Windows下也有一个类似的命令——forfiles,常用选项如下:
/p:指定的路径
/s:递归查询
/m:匹配条件
/d:指定日期,如-7指7天前的文件   
/c:需要运行的命令,等同find的-exec,命令字符串应该用双引号括起来。默认命令是"cmd /c echo @file"。主要使用以下两个变量:
@file    -返回文件名

@path    -返回文件的完整路径

示例:

forfiles /p D:\databak\svn\ /d -5  #查找对应目录下超过5天的文件
forfiles /p D:\databak\test\ /d -31 /c "cmd /c if @isdir==TRUE (rmdir /q /s @path) else (del /f @path)"  #查找一个月以上的文件,如果是目录的话连同目录一起删除,不是目录的话直接删除
只需要把这些命令放入bat脚本,然后创建计划任务执行即可
@echo off
forfiles /p D:\databak\svn\ /d -3 /c "cmd /c if @isdir==TRUE (rmdir /q /s @path)"


评论