我运行存储在每台计算机的备份:
D:\Backup
每台计算机都有一个子文件夹。
Computer 1: D:\Backup\Computer1 Computer 2: D:\Backup\Computer2 Computer 3: D:\Backup\Computer3
在每台计算机中,是另一个文件夹,即备份计算机1的date:D:\ Backup \ Computer \ 20110513
在特定的计算机文件夹内,是其中的一组文件和子文件夹。
如何删除3天以前的备份文件夹? 所以今天是2011年5月13日,我想删除超过3天的一切。
所以在一个文件夹中
Computer 1: D:\Backup\Computer 1\20110508
将需要删除。
如何运行batch file在每台计算机的文件夹中search并删除所有超过3天的子目录和文件。
计算机文件夹的名称可能会更改,并且没有连续的数字,所以我需要检查超过3天的D:\ Backup子目录,但是在删除过程中,会阻止删除计算机名称文件夹它在3天内没有备份。 我不希望电脑文件夹被删除然后。
从Windows Vista / Server 2008安装库存的Forfiles可以从早期版本的Windows资源工具包中获得,应该可以帮助您。 您可能会在这里find一些使用示例 。
顺便说一句:如果您的备份确实保留了文件和目录的时间戳(这应该是备份副本的良好实践),那么您显然会遇到问题,因为没有办法确定备份是否“3天前”logging备份date并在脚本运行期间评估它们。
另外 – 这是一个不删除的testing。
forfiles /m * /d -60 /c "cmd /c if @ISDIR==TRUE ECHO HI_MOM @FNAME"
而危险的版本。 此版本在DELL文件夹中search并删除所有60天或更早的文件夹。
forfiles /p C:\DELL /m * /d -60 /c "cmd /c if @ISDIR==TRUE RD /S /Q @FILE"
RD语法是/ S,用于删除所有目录和文件。 / Q是安静模式(不问)。