我想创建一个批处理文件,用于删除Windows 7系统下某个文件夹中所有超过10天的子文件夹。
希望能得到帮助。
我想创建一个批处理文件,用于删除Windows 7系统下某个文件夹中所有超过10天的子文件夹。
希望能得到帮助。
改编自这个类似问题的答案:
FORFILES /S /D -10 /C "cmd /c IF @isdir == TRUE rd /S /Q @path"
你应该在 d:\study
文件夹内执行此命令。它将删除所有超过10天的子文件夹。
rd
后面的 /S /Q
参数可以让它即使目录不为空也能删除,而且不需要提示。
我建议你将上述命令放入一个 .bat 文件中,并将其保存为 d:\study\cleanup.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"
我使用这段代码清除了test文件夹内的子文件夹(例如n:\test\abc\123会在为空时被清除,但n:\test\abc则不会)。
@echo off
for /f "delims=" %%d in ('dir %1 /s /b /ad ^| sort /r') do rd "%%d" 2>nul && echo rmdir %%d
将script-path添加到您的PATH环境变量中。在这种情况下,您可以从任何位置调用批处理文件(我想UNC路径也应该可以工作)。
Eg.:
YourBatchFileName c:\temp
将删除 c:\temp 文件夹下的所有空子目录
YourBatchFileName
将删除当前目录下的所有空子目录。
forfiles
。 - Blorgbeard