首先要安装7-Zip到c:\Program Files\7-Zip;

示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#define Function DeleteLog
function  DeleteLog{    
     param ( $filePath , $TimeOutDays )    
     $allFiles = get-childitem  -path  $filePath             
     foreach  ( $files  in  $allFiles ){                
         $daypan =(( get-date )- $files .lastwritetime).days                
         if  ( $daypan  -gt  $TimeOutDays ){                        
         remove-item  $files .fullname -Recurse -force                 
         }          
      }
}
 
#define some vars
cd  "C:\Program Files\7-Zip"
$stringDate = get-date  -UFormat  "%Y%m%d"
$fileName = "${stringDate}log"
 
#Compress Log and (Delete Log before one month)
$SoucePath = "C:\windows-services\log"
cmd /c  "7z.exe a -t7z D:\logs\$fileName $SoucePath\*"
$filePath = $SoucePath
$TimeOutDays =30
DeleteLog -filePath  $filePath  -TimeOutDays  $TimeOutDays
 
#Delete Backup log before two months
$Floders = Get-ChildItem  d:\logs
foreach  ( $Floder  in  $Floders ){    
     $Floder .lastwritetime =  Get-Date
}
$filePath = "D:\logs"
$TimeOutDays =60
DeleteLog -filePath  $filePath  -TimeOutDays  $TimeOutDays