在Windows系统中,我们经常需要定时清理一些不需要的文件夹和子文件夹,为了自动化这个过程,我们可以使用批处理脚本来实现定时删除指定文件夹及其所有子文件夹的操作。通过编写简单的脚本,我们可以轻松地管理和清理系统中的不必要文件,提高系统的整体性能和效率。接下来让我们一起来学习如何编写一个简单的Windows脚本来实现这个功能。
创建定时任务脚本
schtasks.exe /create /sc daily /tn "My Task" /tr "C:\path\to\your\script.bat" /st 00:00
请确保将 "C:\path\to\your\script.bat" 替换为你要执行的脚本或命令的完整路径。这个脚本或命令将在每天0点执行。
这里的参数解释如下:
/create:创建一个新任务。/sc daily:设置任务的执行计划为每天。/tn "My Task":为任务指定一个名称,你可以将其替换为你想要的任何名称。/tr "C:\path\to\your\script.bat":指定要执行的脚本或命令的路径。/st 00:00:设置任务的开始时间为每天的0点。 删除文件夹脚本
以下是一个简单的批处理脚本,可以定时删除指定目录及其子目录下的文件:
@echo offset "target_folder=C:\path\to\folder"set "days_to_keep=7" for /d %%d in ("%target_folder%*") do (echo Deleting files in "%%d" older than %days_to_keep% days...for /r "%%d" %%f in (*) do (if /i "%%~nxf" lss "today - %days_to_keep% days" del "%%f" /q /f)rd /s /q "%%d")
请注意,此脚本将删除指定目录及其子目录下的所有文件和文件夹,而不仅仅是目标目录下的文件和文件夹。在运行此脚本之前,请确保您已备份重要数据,并谨慎操作。
在此脚本中,您需要将 target_folder 变量设置为要删除文件的目录的路径。days_to_keep 变量指定要保留文件的最大天数。在此示例中,我们保留最近7天的文件。
脚本首先遍历目标文件夹中的每个子文件夹,并使用 for /r 命令递归处理每个子文件夹中的文件。对于每个文件,它检查文件的名称是否小于当前日期减去指定天数(在此示例中为7天)。如果是,则使用 del 命令删除该文件。/q 参数表示静默删除,不会提示确认,/f 参数表示强制删除只读文件。
接下来,对于每个子文件夹,使用 rd /s /q 命令删除整个文件夹及其内容。/s 参数表示递归删除文件夹及其子文件夹,/q 参数表示静默删除,不会提示确认。
windows服务器上验证删除之前文件目录结构如下
手动执行脚本
删除之后文件目录结构如下
没有12这个文件夹了
@echo offset "SrcDir=E:\dbbak"set DaysAgo=15forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c rd @path /s /q"forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c del @path /f /q /s"pause
到此这篇关于批处理定时删除指定文件夹及子文件夹 bat脚本的文章就介绍到这了,更多相关定时删除指定文件夹及子文件夹内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
以上就是windows脚本删除文件夹的全部内容,有出现这种现象的小伙伴不妨根据小编的方法来解决吧,希望能够对大家有所帮助。
电脑教程推荐