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

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

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

forfiles命令用法:

Forfiles

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

语法

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

参数

/p Path

指定 Path,表明要从哪里开始搜索。默认的文件夹是当前工作目录,该目录通过键入句号 (.) 指定。

/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 [email protected]" 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 [email protected]"

格式化图例

格式 含义

斜体 用户必须提供的信息

粗体 用户必须准确键入的要显示的元素

省略号 (...) 在命令行中可多次重复的参数

中括号 ([]) 可选项

大括号 ({});选项用竖线 (|) 分隔。例如:{even|odd} 用户必须从选项集合中选择一个

Courier 字体 代码或程序输出

时间: 2024-10-05 06:50:24

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

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进行打包

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

数据库每天备份文件,然而只需要保留七天的备份即可,编写一个批处理脚本文件自动删除七天前的文件并设置定时任务 自动删除文件需要用到forfiles命令 forfiles参数:/p 指定的路径/s 包括子目录/m 查找的文件名掩码/d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前   /c 运行的命令行   表示为每个文件执行的命令.命令字符串应该用双引号括起来. 默认命令是 "cmd /c echo @file".下列变量 可以用在命令字符串中: @file    -

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自动删除7天前的文件

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

linux自动删除n天前日志

linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧. 1.删除文件命令: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -mtime +30

自动删除n天前日志

linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧. 1.删除文件命令: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -mtime +30