Batch file to delete folders older than 10 days in Windows 7
我想创建一个批处理文件,该文件应使用Windows 7删除10天以上的文件夹的所有子文件夹。
任何帮助,将不胜感激。
从这个答案改编成一个非常类似的问题:
1 | FORFILES /S /D -10 /C"cmd /c IF @isdir == TRUE rd /S /Q @path" |
您应该在
我建议您将上面的命令放入.bat文件,并将其另存为
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将不会被清除。
如果要与参数一起使用它(即删除给定目录下的所有子目录),则将这两行放入* .bat或* .cmd文件中:
1 2 | @echo off for /f"delims=" %%d in ('dir %1 /s /b /ad ^| sort /r') do rd"%%d" 2>nul && echo rmdir %%d |
并将脚本路径添加到PATH环境变量。在这种情况下,您可以从任何位置调用批处理文件(我想UNC路径也应该起作用)。
例如。:
1 | YourBatchFileName c:\\temp |
(如果需要,您可以使用引号)
将删除c:\ temp文件夹下的所有空子目录
1 | YourBatchFileName |
将删除当前目录下的所有空子目录。