使用Windows中的批处理文件删除超过x天数的文件

时间:2016-02-08 14:24:13

标签: windows batch-file

我一直在尝试编写一个批处理文件,用于删除超过x天数的文件。我有一个备份目录E:\Backup2,其中包含许多子文件夹AlrescoPostgresSybase

这些子文件夹包含不同的文件内部结构,但我不认为这会影响脚本,因为我只需要查看Backup2目录中的每个文件,如果它早于{ {1}}天然后删除该文件。

到目前为止,我有以下内容,但我无法让它发挥作用:

x

其中FORFILES /P "E:\Backup2" /S /D -2 /C "CMD DEL /F /Q @PATH" 定义文件在删除之前必须保留的天数。

当我在2中执行命令时,所有文件都保留,没有报告任何错误。

有趣的是,当我输出到日志文件时,它会报告第一个文件所在的目录。

当我第一次运行该命令时,日志文件报告CMD但是当我将日志文件移动到根目录并重新运行comman时,日志文件报告E:\Backup2\Alfresco\25072015,这表明该命令正在查找它需要删除然后中断的第一个日志文件。

1 个答案:

答案 0 :(得分:1)

从找到的文档here中,他们有以下示例:

    Examples:

Delete the testfile if it is is 5 days old or older:
C:\> forfiles /m testfile.txt /c "cmd /c Del testfile.txt " /d -5

Find .xls file that were last modified 30 days ago or older 
C:\> FORFILES /M *.xls /C "cmd /c echo @path was changed 30 days ago" /D -30

List the size of all .doc files:
C:\> FORFILES /S /M *.doc /C "cmd /c echo @fsize"

与您的代码相比,您在调用cmd del时似乎错过了/ c,因此您的代码应为:

FORFILES /P "E:\Backup2" /S /D -2 /C "CMD /c DEL /F /Q @PATH"