zoukankan      html  css  js  c++  java
  • bat脚本、vbs脚本和perl脚本删除日志文件

    脚本这个东东还是非常实用的,可以简化手动操作。下面这个脚本是删除前七天的日志文件。

    bat脚本:

    @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脚本:

    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脚本:

    #!/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;

     

    作者: ForEvErNoME
    出处: http://www.cnblogs.com/ForEvErNoME/
    欢迎转载或分享,但请务必声明文章出处。如果文章对您有帮助,希望你能 推荐关注
     
     
     
     
     
  • 相关阅读:
    【题解】【BT】【Leetcode】Populating Next Right Pointers in Each Node
    【题解】【BT】【Leetcode】Binary Tree Level Order Traversal
    【题解】【BST】【Leetcode】Unique Binary Search Trees
    【题解】【矩阵】【回溯】【Leetcode】Rotate Image
    【题解】【排列组合】【素数】【Leetcode】Unique Paths
    【题解】【矩阵】【回溯】【Leetcode】Unique Paths II
    【题解】【BST】【Leetcode】Validate Binary Search Tree
    【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree
    第 10 章 判断用户是否登录
    第 8 章 动态管理资源结合自定义登录页面
  • 原文地址:https://www.cnblogs.com/ForEvErNoME/p/2757359.html
Copyright © 2011-2022 走看看