以下是一个简单的批处理脚本,可以定时删除指定目录下的文件:
@echo off
set "target_folder=C:\path\to\folder"
set "days_to_keep=7"
for /d %%d in ("%target_folder%*") do (
set "folder_age=%%~td - %date:~0,4%%-%%date:~5,2%%-%%date:~8,2%%"
if /i "%%~nxd" lss "folder_age" del "%%d\*" /q /f
)
for %%f in ("%target_folder%*") do (
if /i "%%~nxf" lss "today - %days_to_keep% days" del "%%f" /q /f
)
请注意,此脚本仅删除指定目录下的文件,而不是其中的子目录。要删除子目录及其内容,请使用递归删除命令(例如 del "%%d\* /s /q /f
)。
在此脚本中,您需要将 target_folder
变量设置为要删除文件的目录的路径。days_to_keep
变量指定要保留文件的最大天数。在此示例中,我们保留最近7天的文件。
脚本首先遍历目标文件夹中的每个文件夹,并计算每个文件夹的年龄(即其创建日期与当前日期的差值)。如果文件夹的名称小于其年龄(表示该文件夹已过期),则删除该文件夹及其内容。
接下来,脚本遍历目标文件夹中的每个文件,并检查文件的名称是否小于当前日期减去指定天数(在此示例中为7天)。如果是,则删除该文件。
请注意,此脚本将静默删除文件和文件夹,不会提示确认。请谨慎使用此脚本,并确保在运行之前备份重要数据。