用批处理文件删除n天前的文件&&用批处理实现的保留最近的n个文件 最简单方法

原创 2007年09月14日 11:18:00

服務器上面的日誌文件以及備份文件眞是麻煩,時常要手工清理,過一段時間就塞满硬盘了! 看来要做一个批处理文件来代劳!网上查找了一下,发现都比较复杂!想写一个简单一点的纯DOS的BAT。总结了一下。。哈哈。。出来了 。 如下:

dir *.log /O:-D >dir.txt
for /F "skip=n tokens=4" %%a in (dir.txt) do @if exist %%a echo %%a

下面就以上的语句解释一下:

dir *.log /O:-D >dir.txt
按时间排序(从後到先)并输入到dir.txt文件

C:/WINNT/system32/LogFiles/W3SVC1>dir *.log /O:-D
 Volume in drive C has no label.
 Volume Serial Number is D8C3-3037

 Directory of C:/WINNT/system32/LogFiles/W3SVC1

14/09/2007  10:49            4,390,912 ex070914.log
14/09/2007  07:59           18,033,708 ex070913.log
13/09/2007  07:59           18,293,497 ex070912.log
12/09/2007  08:00           18,125,543 ex070911.log
11/09/2007  08:00           12,988,996 ex070910.log
10/09/2007  07:59                    0 ex070909.log
09/09/2007  07:59            7,274,466 ex070908.log
08/09/2007  07:59              122,680 ex070907.log
07/09/2007  07:58                    0 ex070906.log
06/09/2007  07:58                    0 ex070905.log
05/09/2007  07:58                    0 ex070904.log
04/09/2007  07:59            9,371,549 ex070903.log
03/09/2007  07:59            1,509,238 ex070902.log
02/09/2007  07:59           15,580,651 ex070901.log
01/09/2007  07:59           17,188,615 ex070831.log

..................

 126 File(s)  1,920,550,148 bytes
   0 Dir(s)   9,937,321,984 bytes free

for /F "skip=n tokens=4" %%a in (dir.txt) do @if exist %%a echo %%a

取dir.txt文件中第4列,如果存在就显示出来!如果要删除,将echo 换成 del 即可!

skip=n  重点就在这里了。skip=n 就是从首行开始跳过n行

如上面例子的我只要保留最近的3个文件

14/09/2007  10:49            4,390,912 ex070914.log
14/09/2007  07:59           18,033,708 ex070913.log
13/09/2007  07:59           18,293,497 ex070912.log

那么就应该是

n =5+3=8

for /F "skip=8 tokens=4" %%a in (dir.txt) do @if exist %%a echo %%a

 

 

BAT批处理定期删除清理指定N天前的文件

定期删除IIS日志文件    服务器中由于监控的需要会经常生成很多日志文件,比如IIS日志文件(C:\inetpub\logs\LogFiles),一个稍微有流量的网站,其日志每天可以达到上百兆...
  • English0523
  • English0523
  • 2017年05月23日 14:32
  • 2020

bat批处理删除指定N天前的文件

Windows下bat批处理,自动获取文件的最后修改时间,然后将指定多少天之前的文件删除,需要Windows支持forfiles命令,XP及以上系统都自带forfiles命令。        删除指...
  • yx511500623
  • yx511500623
  • 2016年02月03日 15:15
  • 7428

BAT批处理定期删除清理指定N天前的文件

定期删除IIS日志文件    服务器中由于监控的需要会经常生成很多日志文件,比如IIS日志文件(C:\inetpub\logs\LogFiles),一个稍微有流量的网站,其日志每天可以达到上百兆...
  • English0523
  • English0523
  • 2017年05月23日 14:32
  • 2020

shell脚本自动删除n天前日志

转自:http://www.cnblogs.com/peida/archive/2013/03/25/2980121.html linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现...
  • huluedeai
  • huluedeai
  • 2015年03月22日 13:26
  • 2030

bat 删除某路径7天前的文件

@echo off forfiles /p D:\logstash-1.4.2\bin\ /m *.log -d -7  /C "cmd /c del /f @path\" forfiles /p D...
  • saga_gallon
  • saga_gallon
  • 2016年07月18日 14:38
  • 1388

用批处理文件删除n天前的文件(轉)

转自http://blog.csdn.net/leehq/article/details/1723743 公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服...
  • linbrain0000
  • linbrain0000
  • 2014年12月11日 14:26
  • 301

windows中用批处理文件删除n天前的文件

公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服务器去手工删除那些老的文件,有时忘记了就会导致硬盘空间不足而无法备份。 因为只要保留最近几天的备份,如果可以做一个批处理让...
  • zoutuo
  • zoutuo
  • 2011年10月24日 08:59
  • 7307

向DOS批处理文件传入任意个数的参数方法实现

关于Windows下的DOS批处理我虽然使用的不多,但是有限的几个熟悉的命令倒也使用的不少。在一些使用受到很多限制的Windows电脑上,我时常会通过bat文件实现其他脚本语言或者程序提供给用户的工具...
  • grey_csdn
  • grey_csdn
  • 2017年05月19日 00:06
  • 177

tomcat____批处理文件分析(坑 如何实现java方法定时?未解决)

startup.bat(对startup.bat 进行了适当的裁剪): 1 @echo off //echo off 命令用于让其后的所有命令在执行时都不在命令行窗口中显示命令自身的文本内容。如果...
  • u010241120
  • u010241120
  • 2015年09月07日 13:23
  • 234

用C#把批处理文件改为windows系统服务(简单的C#编写系统服务教程)

首先我个人从没学过c#和net,只学过一点c++,所以这个教程是完全不需要c#
  • piekey1994
  • piekey1994
  • 2014年10月04日 23:52
  • 819
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用批处理文件删除n天前的文件&&用批处理实现的保留最近的n个文件 最简单方法
举报原因:
原因补充:

(最多只允许输入30个字)