文章目录
- 1. 删除脚本编写
- 2. 配置任务计划程序
- 1.搜索任务计划程序
- 2. 创建任务
- 3. 触发器配置
- 4. 创建任务–>操作
- 5. 创建任务–>条件
- 6. 创建任务–>设置
- 7. 确定保存设置
1. 删除脚本编写
@echo off
REM 设置源目录和要删除的文件的天数阈值
SrcDir=E:\xxx
DaysAgo=30
REM 从当前日期提取年、月、日
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
REM 组合日期变量为ymd格式
set ymd=%yy%%mm%%dd%
REM 遍历源目录中指定日期前的文件和文件夹,进行删除操作
forfiles /p %SrcDir% /s /m "xxxx*" /d -%DaysAgo% /c "cmd /c if @isdir==TRUE (rmdir /q /s @path) else (del /f @path)"
REM 提示删除操作已完成
echo 删除临时文件
echo 操作完毕
REM 延迟5秒,以便观察删除结果,可选操作
ping 127.0.0.1 -n 5
REM 注释掉的暂停命令,用于调试时保持窗口打开
rem pause
其中
forfiles /p %SrcDir% /s /m "2020*" /d -%DaysAgo% /c "cmd /c if @isdir==TRUE (rmdir /q /s @path) else (del /f @path)"
这段代码使用了
forfiles
命令来遍历指定目录下的文件和子目录,并根据条件执行删除操作。下面是各个参数和命令的详细解释:
/p %SrcDir%
:指定开始搜索的根目录,这里使用了之前定义的环境变量SrcDir,其值为E:\xxx。/s
:表示搜索应递归地包含所有子目录中的文件。/m "xxxx*"
:指定要搜索的文件名模式。这里使用通配符2020*,意味着搜索将只包括那些文件名以2020开头的文件或目录。/d -%DaysAgo%
:设置日期过滤条件。这里的-%DaysAgo%意味着搜索将仅包括那些修改时间早于当前时间DaysAgo天数之前的文件或目录。DaysAgo是一个之前定义的变量,其值为30。/c "cmd /c if @isdir==TRUE (rmdir /q /s @path) else (del /f @path)"
:这个参数指定了一个命令字符串,当forfiles找到匹配的文件或目录时,会执行这个命令。命令字符串使用了嵌套的cmd /c来运行一个条件语句:
if @isdir==TRUE
:检查当前项是否为目录。
- 如果是目录,执行
rmdir /q /s @path
,即安静且递归地删除该目录及其所有内容。- 如果不是目录,执行
del /f @path
,即强制删除该文件。@path
:代表当前处理的文件或目录的完整路径。整体来说,这段代码的作用是在SrcDir目录下(及其所有子目录),查找所有以xxxx开头且最后修改时间超过30天的文件和目录,并将它们删除。
2. 配置任务计划程序
1.搜索任务计划程序
2. 创建任务
3. 触发器配置
这里设置执行一次,可根据实际使用场景来设置
点确定按钮后如下
4. 创建任务–>操作
在操作页签中通过新建窗口来选择与设置执行脚本的路径,如下图
点确定按钮后如下
5. 创建任务–>条件
这里保持默认
6. 创建任务–>设置
设置这里也保持默认
7. 确定保存设置
设置完成后点击确定,如下
点击确定如下
注意:应为在常规中选中了不管用户是否登录都要运行(W),所以在确定时需要输入用户密码,如果不选此项则不会弹出用户账户窗口
输入用户密码后,点击确定,如下
至此设置完成,可关闭任务计划程序窗口。