假设您必须使用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.
答案 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"