Bat script, vbs script, and Perl script Delete log files

Source: Internet
Author: User
Tags filetime perl script


Script is very practical and can simplify manual operations. The following script deletes the log files from the previous seven days.



Bat script:


 
@echo off
echo ------------Delete log file,develop by terry-------------
echo Today date::%date%
::Year
set yy=%date:~0,4%
::Month
set mms=%date:~5,2%
if %mms% GTR 10 (set mm=%mms%) else (set mm=%mms:~1,2%)
::Day
set dds=%date:~8,2%
if %dds% GTR 10 (set dd=%dds%) else (set dd=%dds:~1,2%)
::Caluation
set /a dt=%yy%*365+%mm%*31+%dd%

echo Begin to delete the log file before seven days...
echo ----------------------------------------------------------
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%i in ('dir /s/b "D:\Exception\*txt"') do (        
    set ff=%%~ti    
    ::Year    
    set yf=!ff:~0,4!
    ::Month
    set mfs=!ff:~5,2!    
    if !mfs! GTR 10 (set mf=!mfs!) else (set mf=!mfs:~1,2!)
    ::Day
    set dfs=!ff:~8,2!
    if !dfs! GTR 10 (set df=!dfs!) else (set df=!dfs:~1,2!)
    ::Caluation
    set /a ft=!yf!*365+!mf!*31+!df!
    set /a res=%dt%-!ft!
    ::Delete log file
    if !res! GTR 7 (echo Delete log file %%i)&&(del %%i /f /q)
)
Endlocal
echo ----------------------------------------------------------
echo Delete Completed.
pause


 



Vbs script:


 
Dim fso, startFolder, OlderThanDate
Set fso = CreateObject("Scripting.FileSystemObject")
startFolder = "D:\Exception\" 'File Path
OlderThanDate = DateAdd("d",-7, Now)  'Delete files before sevens day,you can change the span day what you want


Sub DeleteOldFiles(folderName, BeforeDate)
   Dim folder, file, fileCollection, folderCollection, subFolder
   Set folder = fso.GetFolder(folderName)
   Set fileCollection = folder.Files
   For Each file In fileCollection
      If file.DateLastModified < BeforeDate Then   
         fso.DeleteFile(file.Path)
      End If
   Next
    Set folderCollection = folder.SubFolders
    For Each subFolder In folderCollection
       DeleteOldFiles subFolder.Path, BeforeDate 
    Next
End Sub

'Use function
DeleteOldFiles startFolder, OlderThanDate


 



Perl script:


  
#!/usr/bin/perl
use strict;
use warnings;
 
my $path = "D:/Exception";    #path
my $filecount = 0;            #delete file count
my $timeday=7*24*60*60;     #delete files before senven days
my $timenow=time();         #timenow

sub parse_env {
     my $path = $_[0];
     my $subpath;
     my $handle;

     if (-d $path) {
         if (opendir($handle, $path)) {
             while ($subpath = readdir($handle)) {
                 if (!($subpath =~ m/^\.$/) and !($subpath =~ m/^(\.\.)$/)) {
                     my $p = $path."/$subpath";
                     
                     my $filetime = (stat($p))[9];      #file modify time
                     my $timespan=$timenow-$filetime;    #span time
    
                     if (-d $p) {
                         parse_env($p);
                  rmdir $p;
                     } elsif ($timespan > $timeday) {
                         ++$filecount;
                         print "Delete the file:".$p."\n";
                         unlink($p) or warn "failed on $subpath:$!";
                     }
                 }
             }
             closedir($handle);
         }
     }
 
     return $filecount;
}
#use function parse_env
my $count = parse_env $path;
my $str = "Delete files count:".$count;
print $str;




 


Author: forevernome
Source: http://www.cnblogs.com/ForEvErNoME/
You are welcome to repost or share it, but be sure to declare it Article Source. If the article is helpful to you, I hope you can Recommendation Or Follow




Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.