windows server2012 定时删除文件

windows server2012 定时删除文件

背景

用户从chrome浏览器下载文件到固定目录C:\Users\${user_name}\Downloads\,需每天清理更新时间为前一天的文件和空文件夹。

解决步骤

1 编写clean.bat脚本删除C:\Users\${user_name}\Downloads\下文件,并打印日志

@echo off # 只显示了命令的输出,而不显示命令本身
setlocal enabledelayedexpansion  # 设置变量延迟,避免预处理时变量被提取赋值,且变量要用一对叹号“!!”括起来
call :main >>delete_file_log%date:~0,4%%date:~5,2date:~8,2%.txt 
# 调用执行:main标签的代码,并将输出写入到当前日志的txt文件
exit /b # 退出脚本

:main
echo =====%date%-%time%=====
for /D %%u in (*) do ( # 遍历当前C:\Users\路径下所有文件夹
set path=C:\Users\
echo %%u
set path=!path!%%u\Downloads
echo !path!
# 排除desktop.ini隐藏文件,删除更新时间在1天前的文件和空文件夹
C:\Windows\System32\forfiles /p !path! /d -1 "cmd /c (if @file neq \"desktop.ini\" echo deleting @file ... &&(if @isdir == TRUE (rd /S /Q @path) else (del /q @path)))"
)

2 配置计划任务程序定时执行clean.bat脚本

1)点击左下角开始-》管理工具-》计划任务程序
2)展开左侧计划任务程序库-》Microsoft-》Windows,右键创建任务
3)设置任务
填写任务名称-设置安全选项
使用SYSTEM用户,不管用户是否登录都要运行
配置(C)要选择Windows Server 2012 R2
4)设置触发器,在每天的0:00
5)新建操作,启动程序,程序或脚本C:\Users\clean.bat,起始于C:\Users
6)点击确认,任务列表中就可看到刚设置的定时任务

3 编写clean_log.bat脚本删除日志文件

C:\Windows\System32\forfiles /p C:\Users\ /m delete_file_log*.txt /d -30 /c "cmd /c del @path"

4 配置计划任务定时执行clean_log.bat脚本

在每月1日清除更新时间在30天前的【删除下载文件打印的日志文件】
触发器设置为每月
新建操作的启动程序选择clean_log.bat脚本,其余配置和步骤2一致。

学习参考:
如何通过windows定时任务删除文件
Windows server定时删除某天前文件的批处理脚本
怎样在for循环变量中,将循环变量赋值给一个变量 批处理 bat
linux批处理定时删除文件,forfiles命令
删除文件夹:rd
批处理中setlocal enabledelayedexpansion的作用详细整理
BAT 批处理命令 - 获取时间并进行自定义年月日

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值