命令行删除目录中的文件和文件夹和子文件夹,除了今天创建的那些

时间:2014-11-03 14:07:24

标签: windows batch-file command-line windows-7

我想写一个批处理文件来清理我的下载文件夹,删除其中的所有内容除了今天创建的文件和文件夹。  感谢。

1 个答案:

答案 0 :(得分:1)

如果您使用的是现代Windows,建议您使用forfiles

文件夹仍然可能很乱。你想根据目录本身的时间戳来做吗?是否要以递归方式处理所有文件夹,根据日期删除文件,然后删除文件夹(如果在删除给定年龄的文件后为空)。您的问题还有其他合理的解释。就个人而言,我使用python脚本,所以我可以使文件清理完全符合我的要求。这也可能是Uriil建议PowerShell的原因。

可以说,Windows Services for Unix downloadable from Microsoft将被视为公平游戏(允许使用Johnride提到的find命令)。如果您使用此功能,请确保Johnride建议符合您的实际意图。对于find命令,使用选项-print而不是-exec非常适合调试

如果您可以使用forfiles,那么article may give what you want.我可以使用文章中的forfiles自行粘贴批处理文件解决方案。

@echo off
:: set folder path
set dump_path=c:\shares\dump

:: set min age of files and folders to delete
set max_days=1

:: remove files from %dump_path%
forfiles -p %dump_path% -m *.* -d -%max_days% -c "cmd  /c del /q @path"

:: remove sub directories from %dump_path%
forfiles -p %dump_path% -d -%max_days% -c "cmd /c IF @isdir == TRUE rd /S /Q @path"