按日期删除windows中的目录

按日期删除windows中的目录

我对每台计算机都进行了备份,并将其存储在:

D:\Backup

每台计算机都有一个子文件夹。

Computer 1: D:\Backup\Computer1
Computer 2: D:\Backup\Computer2
Computer 3: D:\Backup\Computer3

在每台计算机中,还有另一个文件夹,其中记录了计算机 1 的备份日期:D:\Backup\Computer\20110513

在特定的计算机文件夹中,有一组文件和子文件夹。

我如何删除超过 3 天的备份文件夹?今天是 2011 年 5 月 13 日,我想删除所有超过 3 天的备份文件夹。

因此文件夹

Computer 1: D:\Backup\Computer 1\20110508 

需要删除。

如何运行批处理文件来搜索每台计算机的文件夹并删除所有超过 3 天的子目录和文件。

计算机文件夹的名称可以更改,并且不是连续的数字,因此我认为您需要检查超过 3 天的 D:\Backup 子目录,但在删除过程中,它会阻止删除计算机名称文件夹 - 以防它在 3 天内没有备份。我不希望计算机文件夹被删除。

答案1

福尔菲莱斯它在 Windows Vista / Server 2008 上随附于原厂安装,并且可从早期版本的 Windows 资源工具包中获得,应该能够帮助您。您可能会发现这里有一些使用示例

顺便说一句:如果您的备份确实保留了文件和目录的时间戳(这应该是备份副本的良好做法),那么您显然会在这里遇到问题,因为如果不保留备份日期的单独记录并在脚本运行期间对其进行评估,就无法确定备份是否“3 天前”。

答案2

此外-这里有一个不会删除的测试。

forfiles /m * /d -60 /c "cmd /c if @ISDIR==TRUE ECHO HI_MOM @FNAME"

还有危险版本。此版本会在文件夹 DELL 中搜索并删除所有已存在 60 天或更久的文件夹。

forfiles /p C:\DELL /m * /d -60 /c "cmd /c if @ISDIR==TRUE RD /S /Q @FILE"

RD 语法是 /S,表示删除所有目录和文件。/Q 是安静模式(不询问)。

相关内容