使用Windows批处理文件删除所有比今天更早的* .Zip文件

时间:2018-06-26 10:32:07

标签: batch-file

假设您必须使用Windows批处理文件(不是powershell,并且想删除当前活动目录中所有以.zip结尾的文件。该怎么做?

到目前为止,所有尝试均失败:

forfiles -p "C:\temp\test" -s -m *.zip -d 1 -c "cmd /c del *.zip"

为此,它说

ERROR: No files found with the specified search criteria.

2 个答案:

答案 0 :(得分:2)

如我的评论所建议,通过阅读命令(在命令提示符下输入FORFILES /?时可用)的使用信息可以轻松解决您的问题。

根据您的问题条件,“ delete all files ending in .zip中的the current active directory”:

您不需要使用/P选项,因为如用法信息“ The default folder is the current working directory (.)”中所述。

关于递归当前目录的子目录,您的问题没有任何内容,因此不需要/S选项,即“ Instructs forfiles to recurse into subdirectories”。

对于/D选项,您要查找最后修改日期小于昨天的文件,即。 “ the current date minus "dd" days/D -1

由于您要删除当前目录中的文件,因此无需使用“ Full path of the file”,“ @path”,因此您需要的是“ The name of the file”, @file

FORFILES /M *.zip /D -1 /C "CMD /C DEL @file"

答案 1 :(得分:1)

您没有提及有关子目录或Windows版本的任何内容,因此我假设是。您有旧版本的语法。在Windows 7及更高版本中,语法稍有变化。

对于Windows 7:

forfiles /P "C:\temp\test" /S /M *.zip /D -1 /C "cmd /c del @path"