使用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 下 重启apache

    重启 apache #service httpd restart

  2. C#关于等待窗体(转)

    c#.net 中如果想在主窗口A里点击打开新窗口B(因为要数据库操作,Bload需一小段时间)之前弹出带有滚动条等待子窗口C来提示用户没有死机,应该怎么做?我用多线程打开了c窗口,但是问题:1.C窗口 ...

  3. .net core3

  4. protel或Altium Designer中各种栅格(grid)的意义

    Snap Grid:捕获栅格.指光标移动的最小间隔.Component Grid:元件放置捕获栅格.指放置元件时,元件移动的间隔.Electrical Grid:电气栅格.电气栅格的作用是在移动或放置 ...

  5. BZOJ2101: [Usaco2010 Dec]Treasure Chest 藏宝箱

    2101: [Usaco2010 Dec]Treasure Chest 藏宝箱 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 327  Solved:  ...

  6. 2015第23周四HTML特殊字符显示问题

    1.项目中常采用EL表达式来输出后台内容,但测试发现它并不能完美处理要输出内容包含有<>或&等HTML特殊字符问题.先直接给出此问题JSTL的解决方案: 1.引入标签:<%@ ...

  7. MapReduce流程、如何统计任务数目以及Partitioner

    核心功能描述 应用程序通常会通过提供map和reduce来实现 Mapper和Reducer接口,它们组成作业的核心. Map是一类将输入记录集转换为中间格式记录集的独立任务. 这种转换的中间格式记录 ...

  8. Struts2简单例子

    Struts实现注册功能 ControlFilter.java package com.jikexueyuan.filter; import java.io.IOException; import j ...

  9. flash与字符串:字符串与属性

    有时候,我们想通过设置一个DisplayObject 类是属性值,只是需要通过点来引用即可.有时候,通过字符串也可以引用显示对象里面的属性值.     下面举个例子 .                 ...

  10. 5狐网教你从零基础做Firefox os 手机应用开发赚money

    如果你还没有接触过web编程,这里有基础教程教你怎样一步一步学习开发,如果你已经是一个web编程基础的人,那你就很容易将web编程放到手机上,轻松教你移植web应用游戏到Firefox手机应用再发布到 ...