Windows自动删除n天前的文件的批处理脚本

数据库每天备份文件,然而只需要保留七天的备份即可,编写一个批处理脚本文件自动删除七天前的文件并设置定时任务

自动删除文件需要用到forfiles命令

forfiles参数:
/p 指定的路径
/s 包括子目录
/m 查找的文件名掩码
/d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前  
/c 运行的命令行   表示为每个文件执行的命令。命令字符串应该用双引号括起来。

默认命令是 "cmd /c echo @file"。下列变量 可以用在命令字符串中:

@file    - 返回文件名。
@fname   - 返回不带扩展名的文件名。
@ext     - 只返回文件的扩展。
@path    - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir   - 如果文件类型是目录,返回 "TRUE";如果是文件,返回 "FALSE"。
@fsize   - 以字节为单位返回文件大小。
@fdate   - 返回文件上一次修改的日期。
@ftime   - 返回文件上一次修改的时间。

新建一个记事本文件,输入下面的命令,将文件名命名为“删除7天前备份文件.bat”,注意要删除文件所在的路径

@echo off  #需要密码
forfiles /p "C:\autoscpfile\data" /s /m *.bak /d -7 /c "cmd /c del /f @path"
forfiles /p "C:\autoscpfile\log" /s /m *.txt /d -7 /c "cmd /c del /f @path"

脚本文件写好后设置定时任务

在Windows server 2003上打开任务计划

“开始”—>“所有程序”—>“附件”—>“系统工具”—>“任务计划”

空白处右键单击新建计划任务,将任务命名为“删除7天前备份”,双击该任务

选择浏览,找到批处理文件的路径,设置密码,密码是执行该脚本的用户的登录密码

设置脚本执行的时间,每天3:00执行该脚本,然后点击应用,确定

在Windows server 2008 R2上打开任务计划

“开始”—>“管理工具”—>“任务计划程序”

右侧操作栏,点击创建任务

给任务命名,选择配置,使用最高权限运行

选择触发器,新建

选择新建触发器,设置任务执行的时间,确定

选择操作,新建

点击浏览,选择要执行的脚本路径,起始于选项填写脚本路径,然后确定

时间: 2024-11-10 07:53:55

Windows自动删除n天前的文件的批处理脚本的相关文章

Windows自动删除7天前的文件

forfiles /p C:\test /s /m *.txt /d -7 /c "cmd /c del @path"

windows下自动删除n天前的文件

使用windows2003下的内置命令forfiles配合计划任务可以实现自动删除n天前的文件. windows2003中设定自动执行的计划任务很简单. 一.脚本编写 forfiles命令用法: Forfiles 从文件夹或树中选择要进行批处理的文件. 语法 forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}] [{MM/DD/YYYY | DD}]] 参数 /p Path 指定 Path,表明要从哪里开始搜索.默认的

用批处理文件自动备份文件及文件夹,并自动删除n天前的文件

---恢复内容开始--- 下是备份的批处理,添加到"计划任务"中,设定时间自动运行 复制代码 代码如下:@echo off rem 格式化日期 rem date出来的日期是"2006-02-22 星期三",不能直接拿来使用,所以应该先格式化一下 rem 变成我们想要的.date:~0,4的意思是从0开始截取4个字符 set d=%date:~0,4%%date:~5,2%%date:~8,2% rem 设定压缩程序路径,这里用的是WINRAR的rar.exe进行打包

windows2003下自动删除n天前的文件

使用windows2003下的内置命令forfiles配合计划任务可以实现自动删除n天前的文件. windows2003中设定自动执行的计划任务很简单. forfiles命令用法: Forfiles 从文件夹或树中选择要进行批处理的文件. 语法 forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}] [{MM/DD/YYYY | DD}]] 参数 /p Path 指定 Path,表明要从哪里开始搜索.默认的文件夹是当前工

Linux 自动删除N天前的文件

Linux是一个很能自动产生文件的系统,日志.邮件.备份等.但是对于一些时间久远的日志可以设置定时任务删除.语句写法:find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;例1:find /usr/local/backups -mtime +30 -name "*.*" -exec rm -rf {} \;将/usr/local/backups目录下所有30天前带"."的文件删除find:linux

【linux】自动删除7天前的文件

下面的脚本是删除/home目录下7天前的文件 #!/bin/bash find /home/ -type f -mtime +7 -exec rm -f {} \; 把这个脚本保存在/tmp目录下,命名为:clearfile.sh 加入计划任务 crontab -e 10 22 * * * /bin/sh /tmp/clearfile.sh 这个表示为,每天22点10分执行这个脚本.

linux自动删除规定天数前的文件

公司在线上有一个监控系统,每天都会制造大量文件,然后就需要删除规定天数以前的文件,用来保证硬盘不会满造成服务中断. 语句也很简单, #delete 15 days ago picture files find /home/monitoring/ -mtime +15 -exec rm -rf {} \; -mtime -n +n 按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -exec: find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' {

Windows定时删除某天前文件的批处理脚本

备注:1.如XP下因为没有forfiles.exe,拷贝windows2003下的forfiles.exe文件到XP的system32目录即可使用forfiles命令.  2.该文档适用于windows客户端操作系统xp win7/8/10,windows服务器端操作系统 server 2003/2008/2012/2016.3.如有错漏,烦劳指出,谢谢! forfiles.exe及帮助 描述:     选择一个文件(或一组文件)并在那个文件上执行一个命令.这有助于批处理作业. 语法: forf

linux下面自动打包备份并且删除5 天前的文件

项目要求 1.自动打包某一个文件目录, 2.自动将打包文件放置至一个指定目录 3.自动清除5天前的文件: 实现: 1.使用crontab 进行定时备份 2.使用tar压缩 3.使用shell算出日期 ,remove 旧文件 4. 在/usr/sbin目录中加入备份文件:baksvn #!/bin/sh rq=`date +%Y%m%d` rm -f /home/svnbak/`date -d '-5 days' +%Y%m%d`.tar.gz tar zcvf /home/svnbak/$rq.