1.删除N天前的文件
删除6天前的文件,并删除空文件夹
forfiles /p "d:\test" /s /m *.* /d -6 /c "cmd /c del @path" dir /ad/b/s d:\test\ |sort /r >d:\kill.txt For /f "tokens=*" %%i in (d:\kill.txt) DO rd "%%i" del d:\kill.txt
/p 指定了要在哪个目录里查找文件,默认是当前工作目录。
/s 递归到子目录
/m <SearchMask> : 文件查找所使用的通配符如代码中的"*.log"则为所有日志文件,当然也可以指定诸如"manmee_*.log"这样以manmee开头的所有日志文件。如果不指定此参数则默认为"*.*"。
/d [{+|-}][{<Date>|<Days>}] : 指定想选择文件的最后修改时间,上文中用了 "/d -7" 表示所有以当天为基础,7天以前的文件。当然这里还可以指定具体时间,例如:"/d -08/18/2009"这样所有早于2009年8月18日的文件。注意指定的时间必须是"MM/DD/YYYY"的格式。
/c 对每个找到的文件执行的命令。
@path : 表示文件的完整的路径
/ad 表示列出所有目录
/b”表示只列出文件夹名称而不显示标题信息或摘要
/s”表示搜索,即查找D盘中的所有文件夹和子文件夹;
“/r”表示逆序列排序。
RD命令的作用是删除由For命令传递过来的每一个文件夹,因RD命令无法删除尚有内容的文件夹
2.动态的输出年月日;如20160427
echo %date:~0,4%%date:~5,2%%date:~8,2%