1. 程式人生 > >bat指令碼批量刪除日誌檔案

bat指令碼批量刪除日誌檔案

最近在學習寫bat指令碼,以下為實現批量刪除一個月前的日誌檔案。話不多說直接上程式碼:

@echo off
set y=%date:~0,4%
set m=%date:~5,2%
set d=%date:~8,2%
set /a m-=1
if %m% LSS 11 set m=0%m%
if %m%==00 set m=12&set /a y-=1
set datestr=%y%%m%%d%
setlocal EnableDelayedExpansion
for %%i in (d:\test\*.log) do (
    set var1=%%i
    set var2=!var1:~-12,8!
if !var2! lss %datestr% (del d:\test\*!var2!.log) ) endlocal exit 0

備註:
1、這裡擷取當前時間的年月日,不同系統可能預設的不一致,自己可通過cmd–輸入date,回車檢視。需要修改的話自行baidu。
2、setlocal EnableDelayedExpansion/endlocal
設定本地為延遲擴充套件(延遲變數),全稱”延遲環境變數擴充套件”, 變數%%用!!代替,來獲取變數實時的值。
3、實現原理:
這裡由於日誌檔案命名是有規律的,都是日誌名+時間(年月日).log,通過擷取當中的日期與當前時間的一個月前日期比較來決定刪除對應的檔案。