删除一周前的日志文件

时间:2014-06-18 15:34:52

标签: batch-file

我需要一些帮助来编写一个脚本,删除7天前的所有“日志”文件。当我要去度假时,这个过程每周由我手动完成。因此我想创建一个批处理文件,并将其放在任务计划程序中,每周运行一次。

例如:有一个名为“cache”的文件夹,然后有100个文件夹启动test-01,test-03,test-05

然后在这些测试文件夹中有日志文件,其日期类似于120614.log,130614.log等。脚本应该在每个文件夹下识别这些日志文件,然后删除它们是否为7天。

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以以某种特殊的方式使用robocopy

首先使用robocopy将日历文件夹树中的一周日志文件移动到临时文件夹,然后删除临时文件夹。作为奖励,您可以在移除它们之前对移动的日志文件进行7zip。

robocopy c:\cache %TEMP%\ERASECACHE /MOV /MINAGE:7 
rmdir /S /Q %TEMP%\ERASECACHE

这是如何工作的

来自robocopy /?我们学习:

  

用法:: ROBOCOPY源目的地[file [file] ...] [options]

     

/ MOV :: MOVe文件(复制后从源文件中删除)   / MINAGE:n :: MINimum file AGE - 排除比n天/日期更新的文件。

来自rmdir /?

  

RMDIR [/ S] [/ Q] [drive:]路径

     
      
  • / S除目录本身外,还删除指定目录中的所有目录和文件。用于删除目录树。
  •   
  • / Q安静模式,不要问是否可以使用/ S
  • 删除目录树   

%TEMP%是一个众所周知的环境变量,它包含当前用户具有写入权限的目录