Win10定时删除指定路径下N天前的日志文件

本文介绍了如何使用Windows批处理(BAT)脚本来删除指定路径下N天前的日志文件,以及如何设置任务计划程序来定时执行该脚本,确保系统保持高效运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows 定时删除指定路径下N天前的日志文件

Windows 定时删除指定路径下N天前的日志文件

Windows 下bat脚本文件的内容为

1. 删除指定路径下5天前的所有文件

@echo off
set SrcDir=E:\WORK\Git
set DaysAgo=5
forfiles /p %SrcDir% /s /m *.*/d -%DaysAgo% /c "cmd /c del /f /q /a @path"

2.删除指定路径下5天前的所有log文件

@echo off
set SrcDir=E:\WORK\Git //指定的路径
set DaysAgo=5 //5天前
forfiles /p %SrcDir% /s /m *.log/d -%DaysAgo% /c "cmd /c del /f /q /a @path"

*.log为筛选的文件格式,同样若是删除jpg图片格式文件,这里可替换 为.jpg

3. Windows 定时运行bat文件

1、 在WIN10系统中,选择计算机管理-》系统工具-》任务计划程序,创建任务
在这里插入图片描述
2、在弹出的“创建任务”框中,常规里面设置
在这里插入图片描述
3、 触发器中 —>新建,并设置定时运行的时间点和频率

在这里插入图片描述
4、操作->新建->打开编写好的bat脚本文件,并点击确定保存
在这里插入图片描述
这时再返回计算机管理界面,系统工具->任务计划程序->任务计划程序中就能找到“定时自动删除”这个任务了。

<think>我们计划编写一个批处理脚本(.bat)来实现定时清理指定路径下超过指定数的视频文件。在Windows 10中,我们可以使用任务计划程序来定时执行这个脚本。 步骤: 1. 编写批处理脚本:使用`forfiles`命令来删除指定数之的文件。 2. 创建计划任务:通过Windows任务计划程序设置定时执行该脚本。 注意:`forfiles`命令是Windows自带的,通常用于批量处理文件,支持根据文件的修改日期进行筛选。 假设我们要清理路径是:`D:\Videos`,并且要删除30的视频文件(文件扩展名为.mp4, .avi, .mov等)。 批处理脚本示例(clean_videos.bat): ```batch @echo off set "target_dir=D:\Videos" set "days_old=30" set "extensions=*.mp4 *.avi *.mov" for %%E in (%extensions%) do ( forfiles /P "%target_dir%" /M %%E /D -%days_old% /C "cmd /c del @path" ) ``` 解释: - `@echo off`:关闭命令回显,使输出更整洁。 - 设置变量:`target_dir`(目标路径)、`days_old`(文件保留的数)、`extensions`(要删除的文件扩展名列表)。 - 循环每个扩展名,使用`forfiles`命令: - `/P`:指定路径。 - `/M`:文件匹配模式(例如*.mp4)。 - `/D -30`:表示30的文件(注意负号表示之)。 - `/C`:对每个找到的文件执行命令,这里是删除文件(`del @path`)。注意:`@path`表示文件的完整路径。 重要:在删除文件之,建议先测试脚本,确保不会误删重要文件。可以在`del`命令之添加`echo`来打印要删除的文件(而不实际删除): ```batch forfiles /P "%target_dir%" /M %%E /D -%days_old% /C "cmd /c echo del @path" ``` 测试无误后,再移除`echo`进行实际删除。 接下来,设置计划任务: 1. 打开“任务计划程序”(可以在开始菜单搜索)。 2. 创建任务: - 常规:填写任务名称,例如“自动清理视频文件”,并选择“不管用户是否登录都要运行”等选项(注意:需要输入密码)。 - 触发器:新建触发器,设置定时执行(例如每凌晨1点)。 - 操作:新建操作,选择“启动程序”,然后浏览到上面的clean_videos.bat脚本。 3. 其他设置按需配置。 注意:如果脚本中涉及网络路径或需要特定权限,请确保任务计划程序设置的用户账户有足够权限。 另外,由于批处理脚本删除文件是不可逆的,请务必在测试模式下确认无误后再启用。 相关问题: 1. 如何恢复使用批处理脚本删除的文件? 2. 除了`forfiles`,还有哪些方法可以在批处理中根据日期删除文件? 3. 如何让批处理脚本在删除文件时记录日志?</think>### 如何在Windows 10中使用.bat脚本定时清理视频文件 以下是完整的实现方案,包含脚本编写和任务配置: #### 1. 创建清理脚本 (`clean_videos.bat`) ```batch @echo off setlocal enabledelayedexpansion REM 配置参数 set "target_dir=D:\Your\Video\Folder" REM 替换为你的视频路径 set days_old=30 REM 保留最近N的文件 set file_extensions=*.mp4 *.avi *.mkv REM 要清理的视频格式 REM 日志记录 set "log_file=%target_dir%\cleanup_log.txt" echo [%date% %time%] 开始清理 >> "%log_file%" REM 核心清理命令 for %%E in (%file_extensions%) do ( forfiles /P "%target_dir%" /M %%E /D -%days_old% /C "cmd /c echo 删除 @path && del @path /F /Q" >> "%log_file%" 2>&1 ) echo [%date% %time%] 清理完成 >> "%log_file%" endlocal ``` **参数说明**: - `target_dir`:需要清理的视频文件夹路径 - `days_old`:保留最近多少的文件(如30) - `file_extensions`:要清理的视频格式(空格分隔) - 日志会记录到目标目录的`cleanup_log.txt` > **安全提示**:首次运行,将`del @path`改为`echo @path`测试,确认输出文件列表正确后再启用删除[^1] #### 2. 设置计划任务(定时执行) 1. **Win+R** 输入 `taskschd.msc` 打开任务计划程序 2. 右侧操作栏选择 **创建任务** 3. **常规**选项卡: - 名称:`自动清理视频文件` - 勾选 **"使用最高权限运行"** 4. **触发器**选项卡 → **新建**: - 设置执行频率(如每凌晨3点) ```plaintext 设置示例: 开始时间:03:00:00 重复任务间隔:1 ``` 5. **操作**选项卡 → **新建**: - 操作:`启动程序` - 程序/脚本:浏览选择你的`clean_videos.bat` 6. **条件**选项卡: - 取消勾选 **"只有在计算机使用交流电源时才启动此任务"** 7. 点击 **确定** 保存,输入管理员密码 #### 3. 验证与调试 - 手动运行脚本:双击`.bat`文件执行 - 检查日志文件:查看`cleanup_log.txt`中的操作记录 - 查看任务历史:在任务计划程序中右键任务 → **运行** #### 关键命令解析 ```batch forfiles /P "路径" /M *.ext /D -数 /C "命令" ``` - `/P`:指定搜索路径 - `/M`:文件匹配模式(如`*.mp4`) - `/D -N`:筛选N的文件(负号表示之) - `/C`:对匹配文件执行的命令 - `@path`:被处理文件的完整路径变量 > 注意:`forfiles`是Windows内置命令,无需额外安装[^2] #### 高级选项 1. **排除子目录**:添加`/S 0`参数(默认包含子目录) 2. **邮件通知**:添加SMTP命令发送清理报告 3. **回收站替代**:将`del`改为`move @path "C:\RecycleBin"` ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值