批处理文件,用于删除Windows 7中超过10天的文件夹

时间:2011-03-31 08:39:53

标签: batch-file

我想创建一个批处理文件,该文件应使用Windows 7删除超过10天的文件夹的所有子文件夹

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:45)

改编自this answer to a very similar question

FORFILES /S /D -10 /C "cmd /c IF @isdir == TRUE rd /S /Q @path"

您应该从d:\study文件夹中运行此命令。它将删除所有超过10天的子文件夹。

/S /Q之后的rd会删除文件夹,即使它们不是空的,也不会提示。

我建议您将上述命令放入.bat文件中,并将其另存为d:\study\cleanup.bat

答案 1 :(得分:9)

  

FORFILES / S / D -10 / C“cmd / c IF @isdir == TRUE rd / S / Q @path”

我无法得到Blorgbeard的工作建议,但我能够使用RMDIR代替RD:

  

FORFILES / p N:\ test / S / D -10 / C“cmd / c IF @isdir == TRUE RMDIR / S / Q @path”

由于RMDIR不会删除非空的文件夹,因此我最终也使用此代码删除超过10天的文件,然后删除超过10天的文件夹。

  

FOR / d %% K in(“n:\ test *”)DO(

     

FOR / d %% J in(“%% K *”)DO(

     

FORFILES / P %% J / S / M / D -10 / C“cmd / c del @file”

     

     

     

FORFILES / p N:\ test / S / D -10 / C“cmd / c IF @isdir == TRUE RMDIR / S / Q @path”

我使用此代码清除测试中文件夹中的子文件夹(例如n:\ test \ abc \ 123在清空时会被清除,但n:\ test \ abc不会被清除

答案 2 :(得分:0)

如果你想将它与参数一起使用(即删除给定目录下的所有子目录),则将这两行放入* .bat或* .cmd文件中:

@echo off
for /f "delims=" %%d in ('dir %1 /s /b /ad ^| sort /r') do rd "%%d" 2>nul && echo rmdir %%d

并将脚本路径添加到PATH环境变量中。在这种情况下,您可以从任何位置调用批处理文件(我认为UNC路径也可以工作)。

例如:

YourBatchFileName c:\temp

(如果需要,您可以使用引号)

将删除c:\ temp文件夹

下的所有空子目录
YourBatchFileName

将删除当前目录下的所有空子目录。