DOS/BAT

关注公众号 jb51net

关闭
首页 > 脚本专栏 > DOS/BAT > 定时删除指定文件夹及子文件夹

批处理定时删除指定文件夹及子文件夹 bat脚本

作者:三希

这篇文章主要介绍了批处理定时删除指定文件夹及子文件夹 bat脚本,需要的朋友可以参考下

创建定时任务脚本

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 off
set "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 off
set "SrcDir=E:\dbbak"
set DaysAgo=15
forfiles /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脚本的文章就介绍到这了,更多相关定时删除指定文件夹及子文件夹内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

阅读全文