我想用bat删除某文件夹下的100天之前的csv文件。然后就上网搜了,结果还真的搜到了。地址是
http://bbs.csdn.net/topics/380054419
我看到了这个命令
forfiles -p "D:\testFolder" -s -m "*.csv" -d -100 -c "cmd /c del @FILE"
下面是对这个命令的解释:
首先,你可以用以下命令查看各命令的详细帮助:
D:\>forfiles /?
D:\>cmd /?
D:\>del /?
下面摘自forfiles的帮助文档:
/P pathname 表示开始搜索的路径。默认文件夹是当前工作的目录 (.)。
/S 指导 forfiles 递归到子目录。像 "DIR /S"。
/M searchmask 根据搜索掩码搜索文件。默认搜索掩码是 '*'。
/D date 选择文件,详见帮助消息。
/C command 表示为每个文件执行的命令。命令字符串应该用双引号括起来。详见帮助消息。
/? 显示此帮助消息。
所以说,-p指定了搜索的根目录为"D:\testFolder",而且是递归的搜索(-s),搜索到的文件名的匹配模式是"*.csv",而且文件的日期(创建日期?修改日期?)是100天之前的文件,对于所有得到的文件,都执行一个命令为"cmd /c del @FILE",表示要删除这个文件。
另外,在cmd下,当用到路径时,请尽量用双引号引上,如果路径中有空格等特殊字符的话,如果不用双引号引上,命令行会判断错误的