批处理实现自动删除过期文件的定期操作

摘要:
执行后,将在同一目录中生成日志文件:DelExpiredLog。log实际执行的开始时间。这有助于批处理作业。默认文件夹是当前工作目录(.)/Msearchmask根据搜索掩码搜索文件/Ccommand表示为每个文件执行的命令@Fname-返回不带扩展名的文件名@Path-返回文件的完整路径@Fsize-返回文件大小(字节)@Fdate-返回文件上次修改的日期。有效的“dd”天数可以是0-32768范围内的任何数字。如果未指定,则使用“+”作为默认符号。“FORFILES/D2001-01-01/C”命令/cecho@fname2001年1月1日新增。“FORFILES/M*.exe/D+1FORFILES/S/M*.doc/C”cmd/cecho@fsize“FORFILES/M*.txt/C”cmd/cif@isdir == FALSEnotepad.exe@file“三十天前删除文件/p”d:108“/s/m*.*/d-30/c”cmd/cdel@path "

执行后会在相同目录下生成日志文件:DelExpiredLog.log现实执行的起始时间点。
@echo off
rem write to log
set filename=DelExpiredLog.log
echo -------------------Delete Expired Log Files------------------------- >>%filename%
echo Start >>%filename%
echo (%date% %time%) >>%filename%
echo Delete the expired log files in 目标目录路径1, Please wait... >>%filename%
forfiles  /p "目标目录路径1" /m *.* /d -3 /c "cmd /c del @path"
echo Delete the expired log files in 目标目录路径2, Please wait... >>%filename%
forfiles  /p "目标目录路径2" /m *.* /d -3 /c "cmd /c del @path"
echo End >>%filename%
echo (%date% %time%) >>%filename%
exit

FORFILES  [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

描述:
选择一个文件(或一组文件)并在那个文件上
执行一个命令。这有助于批处理作业。

参数列表:
/P pathname 表示开始搜索的路径。默认文件夹是当前工作的
目录 (.)。

/M searchmask 根据搜索掩码搜索文件。默认搜索掩码是 '*'。

/S 指导 forfiles 递归到子目录。像 "DIR /S"。

/C command 表示为每个文件执行的命令。命令字符串应该
用双引号括起来。

默认命令是 "cmd /c echo @file"。下列变量
可以用在命令字符串中:
@file - 返回文件名。
@fname - 返回不带扩展名的文件名。
@ext - 只返回文件的扩展。
@path - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir - 如果文件类型是目录,返回 "TRUE";
如果是文件,返回 "FALSE"。
@fsize - 以字节为单位返回文件大小。
@fdate - 返回文件上一次修改的日期。
@ftime - 返回文件上一次修改的时间。

要在命令行包括特殊字符,字符请以 0xHH
形式使用十六进制代码(例如,0x09 为 tab)。
内部 CMD.exe 命令前面应以 "cmd /c" 开始。

/D date 选择文件,其上一次修改日期大于或等于 (+),
或者小于或等于 (-) 用 "yyyy-MM-dd" 格式指定的日期;
或选择文件,其上一次修改日期大于或等于 (+)
当前日期加 "dd" 天,或者小于或等于 (-) 当前
日期减 "dd" 天。有效的 "dd" 天数可以是
0 - 32768 范围内的任何数字。如果没有指定,
"+" 被当作默认符号。

/? 显示帮助消息。

例如:
FORFILES /?
FORFILES
FORFILES /P C:WINDOWS /S /M DNS*.*
FORFILES /S /M *.txt /C "cmd /c type @file | more"
FORFILES /P C: /S /M *.bat
FORFILES /D -30 /M *.exe
/C "cmd /c echo @path 0x09 在 30 前就被更改。"
FORFILES /D 2001-01-01
/C "cmd /c echo @fname 在 2001年1月1日就是新的。"
FORFILES /D +2006-11-25 /C "cmd /c echo @fname 今天是新的。"
FORFILES /M *.exe /D +1
FORFILES /S /M *.doc /C "cmd /c echo @fsize"
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"

删除三十天前的文件forfiles /p "d:108" /s /m *.* /d -30 /c "cmd /c del @path"

免责声明:文章转载自《批处理实现自动删除过期文件的定期操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android开发使用Glide获取图片背景色淡绿色解决办法Java多线程-线程的调度(合并)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java Process在windows的使用汇总(转)

最常用的是ant(java工程中流行),maven,及通用的exec(只要有shell脚本如.sh,.bat,.exe,.cmd等).而其实前两者不容易出错,后者却遇到了以下问题:Caused by: java.io.IOException: Cannot run program "DailyBuild.bat"...java.io.IOException...

Linux 定时循环执行 python 脚本

本文主要介绍在linux环境下,定时循环执行python脚本的两种方法。 方法一: nohup vim time.py 1 import time 2 while(True): 3 #time.sleep(1) 4 with open('time.log', 'a+') as logfile: 5 logfile.write...

[转]DbHelper通用数据库访问帮助类

之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习。      通常我们在开发使用数据库访问帮助类时,都单独的针对某一种数据进行编写相应的数据访问帮助类,如SQLHelper,OracleHelper,OleDbHelper等,其实这些都帮...

MySQL查询截取分析

一、查询优化 1,mysql的调优大纲 慢查询的开启并捕获 explain+慢SQL分析 show profile查询SQL在Mysql服务器里面的执行细节和生命周期情况 SQL数据库服务器的参数调优 2,小表驱动大表 mysql的join实现原理是,以驱动表的数据为基础,“嵌套循环”去被驱动表匹配记录。驱动表的索引会失效,而被驱动表的索引有效。 #假...

syslogng配置

绚丽也尘埃 » syslog-ng配置 syslog-ng配置 March 13th, 2012绚丽也尘埃Leave a commentGo to comments syslog-ng的配置非常简单直观,于是乎配置好看看怎么用它实时收集日志。有两台服务器,一台服务器盯着error_log文件,一旦发现其有新数据,立即将日志发到另一台收集服务器。 c...

CentOS日常维护及常用脚本

[root@192-16.x.x xiewenming]# curl myip.ipip.net 当前 IP:42.62.x.x 来自于:中国 北京 北京 联通/电信 www.17ce.com cdn解析网站测试 如果遇到 -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8...