使用windows2003下的内置命令forfiles配合计划任务可以实现自动删除n天前的文件。

windows2003中设定自动执行的计划任务很简单。

一、脚本编写

forfiles命令用法:

Forfiles

从文件夹或树中选择要进行批处理的文件。

语法

forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}] [{MM/DD/YYYY | DD}]]

参数

/p Path
指定 Path,表明要从哪里开始搜索。默认的文件夹是当前工作目录,该目录通过键入句号 (.) 指定。
注:绝对路径应该包含在双引号中,且路径应该由反斜杠分割:example:"D:\HOME\Desktop\62backup"
/m SearchMask
按照 SearchMask 搜索文件。默认的 SearchMask 是 *.*
/s
指示 forfiles 在子目录中搜索。
/c Command
在每个文件上运行指定的 Command。带有空格的命令字符串必须用引号括起来。默认的 Command 是 "cmd /c echo @file"
/d[{+ | -}] [{MM/DD/YYYY | DD}]
选择日期大于或等于 (+)(或者小于或等于 (-))指定日期的文件,其中 MM/DD/YYYY 是指定的日期,DD 是当前日期减去 DD 天。如果未指定 + 或-,则使用 +DD 的有效范围是 0 - 32768。
/?
在命令提示符下显示帮助。

注释

  • Forfiles 最常用于批处理文件中。
  • Forfiles /s 与 dir /s 类似。
  • 下表列出了在 /c Command 命令字符串中能够使用的变量。
    变量 描述
    @file 文件名
    @fname 无扩展名的文件名
    @ext 文件扩展名
    @path 文件的完整路径
    @relpath 文件的相对路径
    @isdir 如果文件类型是目录,值为 TRUE,否则值为 FALSE
    @fsize 用字节表示的文件大小
    @fdate 文件中上次修改的日期戳
    @ftime 文件中上次修改的时间戳
  • 使用 forfiles,可以在多个文件上运行命令或将参数传递给多个文件。例如,可以在树中带有 *.txt 扩展名的所有文件上运行 TYPE 命令。或者,可以用文件名“Myinput.txt”作为第一个参数,在 C:/ 驱动器上执行每个批处理文件 (*.bat)。
  • 通过使用 forfiles,可以执行下列任何操作:
    • 使用 /d 按照绝对或相对日期选择文件。
    • 使用诸如 @fsize(文件大小)和 @fdate(文件日期)这样的变量构建文件的存档树。
    • 使用 @isdir 变量区分文件和目录。
    • 通过在命令行中包含特殊字符和使用十六进制代码 0xHH 环绕字符来格式化输出内容。
  • Forfiles 通过在旨在仅处理单个文件的工具上执行“循环子目录”标记来发挥作用。

示例

自动删除d:/test下超过7天的.bak的文件

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

要列出驱动器 C: 上的所有批处理文件,请键入:

forfiles /p c:/ /s /m*.bat /c"cmd /c echo @file is a batch file"

要列出驱动器 C: 上的所有目录,请键入:

forfiles /p c:/ /s /m*.* /c"cmd /c if @isdir==true echo @file is a directory"

要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:

forfiles /p c:/ /s /m*.* /dt-100 /c"cmd /c echo @file : date >= 100 days"

要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:

forfiles /p c:/ /s /m*.* /dt-01011993 /c"cmd /c echo @file is quite old!"

要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:

forfiles /p c:/ /s /m*.* /c "cmd /c echo extension of @file is 0x09@ext0x09" With:

要列出驱动器 C: 上的所有批处理文件,请键入:

forfiles /p c:/ /s /m *.bat /c "cmd /c echo @file is a batch file"

要列出驱动器 C: 上的所有目录,请键入:

forfiles /p c:/ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"

要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:

forfiles /p c:/ /s /m *.* /d t-100 /c "cmd /c echo @file : date >= 100 days"

要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:

forfiles /p c:/ /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"

要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:

forfiles /p c:/ /s /m*.* /c "cmd /c echo extension of @file is 0x09@ext0x09"

格式化图例

格式 含义
斜体 用户必须提供的信息
粗体 用户必须准确键入的要显示的元素
省略号 (...) 在命令行中可多次重复的参数
中括号 ([]) 可选项
大括号 ({});选项用竖线 (|) 分隔。例如:{even|odd} 用户必须从选项集合中选择一个
Courier 字体 代码或程序输出

二、配置计划任务

  

    开始-->所有程序-->附件-->系统工具-->任务计划程序
 
    任务计划程序(本地)-->任务接话程序库-->创建基本任务-->
 
    输入 名称:  描述:点击下一步
 
    触发器:设置周期
 
    设置详细时间
 
    操作选择 启动程序
 
    选择要执行的bat脚本就是上面所写好的脚本
 
    点击完成
 
    详细的属性,可以勾选则点击完成时弹出属性对话框进行对每一项详细的设置。
  参考:http://www.jb51.net/os/windows/58393.html
  三、验证是否能够成功执行计划任务
  在计划任何的执行界面中配置的启动时间提前当前时间2分钟,待显示上次成功执行(0X0返回码表示成功执行)以后确认定时任务可以成功执行。
注:(一)在创建计划任务调用的bat文件时可能出现中文乱码现象,原因是在创建bat文件时不是设置的ANSI编码,只有ANSI编码才能支持中文。
  创建支持中文的bat文件的方法:
  1、面对这个情况是编码不同问题,所以在最开始就应该把编码修正,支持中文的编码是ANSI。我们第一步是新建一个txt文件。
  2、然后点击新建的文本文档,然后选择“文件”=》“另存为”
  3、cmd中的编码方式为ANSI,若中文不是此编码方式则会出现乱码。所以我们在编码的时候选择“ANSI”
  4、然后把上面的代码重新输入到我们保存的文件,重名命为.bat的文件
  (二)创建的bat脚本双击执行时只在屏幕一闪而过,不能查看调试时的错误信息解决方法
  1、执行cmd命令
  2、进入到bat文件所在的目录
  3、执行bat文件。bat文件的执行结果就会成功显示在dos界面上,这样可以调试bat脚本和查看脚本中的错误信息,以便修改脚本语句。
 
 

windows下自动删除n天前的文件的更多相关文章

  1. windows下自动删除过期文件的脚本

    windows下自动删除过期文件的脚本 前言: 比如日志文件每天都产生,时间长了就会有很大的一堆垃圾.整理一下 定时删除文件的方法. 正文: Windows: 定时删除tomcat日志和缓存.可以保留 ...

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

    原文:用批处理文件自动备份文件及文件夹,并自动删除n天前的文件 ---恢复内容开始--- 下是备份的批处理,添加到"计划任务"中,设定时间自动运行 复制代码 代码如下:@echo ...

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

    下面的脚本是删除/home目录下7天前的文件 #!/bin/bash -exec rm -f {} \; 把这个脚本保存在/tmp目录下,命名为:clearfile.sh 加入计划任务 crontab ...

  4. Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  5. windows下创建/删除服务

    windows下创建/删除服务 1.      windows下创建/删除服务 1.1.    创建服务 命令格式: sc [servername] create Servicename [Optio ...

  6. 自动删除n天前日志

    自动删除n天前日志 linux 是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种 爽快的事情.不用你去每 ...

  7. Linux计划任务,自动删除n天前的旧文件

    Linux计划任务,自动删除n天前的旧文件 linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,但需求总是多方面的嘛-我就觉得让系统定时 ...

  8. shell 自动删除n天前备份

    Linux自动删除n天前备份Linux是一个很能自动产生文件的系统,日志.邮件.备份等.因此需要设置让系统定时清理一些不需要的文件.语句写法:     find 对应目录 -mtime +天数 -na ...

  9. linux自动删除30天前的日志文件

    linux应用总结: 自动删除n天前的日志文件: . 使用的命令格式如下: find 对应目录 -mtime +天数 -name "文件名" -exec -rm -rf -name ...

随机推荐

  1. LINUX服务器配置NFS服务,挂载外部存储实现目录共享

    安装nfs  rpcbind 一.服务端配置 安装 NFS 服务器所需的软件包:nfs 和 rpcbind # yum install nfs-utils # yum install rpcbind( ...

  2. 三星手机照相机出现了故障,htc无法连接无线网

    1 重启 2 若还不行,把内存卡,电池拿掉, 也可下载一个相机应用

  3. 利用redis协助mysql数据库搬迁

    最近公司新项目上线,需要数据库搬迁,但新版本和老版本数据库差距比较大,关系也比较复杂.如果用传统办法,需要撰写很多mysql脚本,工程量虽然不大,但对于没有dba的公司来说,稍微有点难度.本人就勉为其 ...

  4. Spark学习笔记-三种属性配置详细说明【转】

    相关资料:Spark属性配置  http://www.cnblogs.com/chengxin1982/p/4023111.html 本文出处:转载自过往记忆(http://www.iteblog.c ...

  5. Activity生命周期的学习以及Logcat的使用

    http://android.blog.51cto.com/268543/322518/  Activities是由Activity stack管理的.当一个新的Activity被启动,它就会处于st ...

  6. Qt中用QSS切分图片

    Qt设计时有时需要实现动态按钮,按钮点击时一个状态,鼠标悬浮时一个状态,离开时一个状态,静止时一个状态.可以用一张png长图,使用QSS分段截取,分配给每一个状态.    1.调用函数 SetButt ...

  7. scheme 解释器Guile 使用

    GNU Guile是一种Scheme编程语言的解释器和虚拟机.Guile是GNU Ubiquitous Intelligent Language for Extensions的缩写.Guile是GNU ...

  8. Struts2标签库之iterator

    传说中的第一种方式,这种在Struts2.1权威指南的例子中也木有说明白: <%@ page language="java" contentType="text/h ...

  9. 专注于HTTP的高性能高易用性网络库:Fslib.network库

    博客列表页:http://blog.fishlee.net/tag/fslib-network/ 原创FSLib.Network库(目前专注于HTTP的高性能高易用性网络库) FSLib.Networ ...

  10. HDU 3586 : Information Disturbing

    Problem Description In the battlefield , an effective way to defeat enemies is to break their commun ...