- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
forfiles DOS下遍历文件
forfiles?DOS下遍历文件server2003版本以上自带forfiles工具,2000和xp想用,拷贝文件即可1. 用批处理文件删除当前目录下 7 天以前的扩展名为bkf文件(以当前系统时间为基准)?? 示例:forfiles /m *.bkf /d -7 /c cmd /c del @file /f2. forfiles自动删除7天前文件(以当前系统时间为基准)示例: forfiles /p d:\test /s /m *.* /d -7 /c cmd /c del @path? d:\test换成你要的目录路径; /d -7 指删除7天以前文件。3. 删除所有的空目录(以删除d:\test目录下为例) :dir /ad/b/s d:\test\ |sort /r d:\kill.txtFor /f tokens=* %%i in (d:\kill.txt) DO rd %%idel d:\kill.txt4. 先删7 天以前文件,再删所有的空目录 ;把以下复制到bat文件中。?@echo off?forfiles /p d:\test /s /m *.* /d -7 /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.txt5. forfiles命令的用法及参数:?? forfiles /p 目标目录名 /d 天数 /c 执行的命令?? /d 指定一个日期或天数,用于比较文件的最后修改日期是否符合条件。? /c 对每个找到的文件执行的命令。例1.要把在C盘根目录下最后修改日期大于或等于2010年1月7日的文件复制到D盘根目录下:??? forfiles /p c:\ /d 2007-7-1 /c cmd /c copy @path d:\例2.删除在C盘backup目录下最后修改日期在10天前的文件:????? forfiles /p c:\backup /d -10 /c cmd /c echo deleting @file ... del /f @path6. forfiles /p 包含要删除文件的完整路径(如:F:\Logfiles) /m *.log -d -7 /c cmd /c del /f@path解释一下相关参数及命令/p Path :指定开始搜索文件的位置,如果不指定则默认为当前目录。/m SearchMask :文件查找所使用的通配符如代码中的*.log则为所有日志文件,当然也可以指定诸如manmee_*.log这样以manmee开头的所有日志文件。如果不指定此参数则默认为*.*。/d [{+|-}][{Date|Days}] :指定想选择文件的最后修改时间,上文中用了 /d -7 表示所有以当天为基础,7天以前的文件。当然这里还可以指定具体时间,例如:/d -01/7/2010这样所有早于2010年1月7日的文件。注意指定的时间必须是MM/DD/YYYY的格式。/c 对所有文件以此执行指定的命令,命令体须在双引号()内,默认是cmd /c echo @file。上文中用到的是cmd /c del /f @path删除指定文件。(这里的@file 和 @path 为变量,下文中将解释。)下面说一下上文中用到的参数:@PATH :表示文件的完整的路径。@File :表示文件名称。接下来我们看看删除文件夹的操作,如果你看了上面的介绍,相信这命令你一看就能看懂。forfiles /p 包含文件夹的路径(如:F:\) /m 文件夹名称(如:LogFiles) -d 0 /c cmd /c if @ISDIR== true rd /s/q @path注意这里的包含文件夹的路径不能包含要删除的文件夹,如以上代码所表示的就是,在F盘中查找名为LogFiles的文件或文件夹(不能指定查找文件夹,不过在删除时我们做了判断)。还有就是这里出现了一个新的参数@ISDIR他用于判断当前文件类型是否是文件夹类型,如果是则为true否则为false。相信到这大家就明白了,最后再将代码保存为批处理文件,然后加入计划任务定期执行即可。看了上面的例子,觉得在 Windows Server 2003 下面要删除老文件很简单吧。但如果操作系统是 Windows 2000/XP 就比较麻烦,因为它们没有forfiles命令,只能靠自己写批处理来实现了。下面是我写的批处理文件内容:@echo offrem ******************************rem * 按时间删除文件目录的批处理 *rem ***************
文档评论(0)