使用bat批處理批量打包日誌並刪除往期日誌

2021-10-09 20:43:49 字數 3901 閱讀 5923

@echo

offrem 獲取昨天日期

set ye=

%date:~0,

4%set mo=

%date:~5,

2%set da=

%date:~8,

2%set dg=

1set

/a vy1=

%ye%%%

400set

/a vy2=

%ye%%%

4set

/a vy3=

%ye%%%

100if

%vy1%==

0(set var=

true

)else(if

%vy2%==

0(if%vy3%==

0(set var=

false

)else

(set var=

true))

else

(set var=

false))

set ly=

%ye%

set lm=

%mo%

if%mo:~0,

1%==

0(set mo=

%mo:~1,

1%)if

%da:~0,

1%==

0(set da=

%da:~1,

1%)if

%da% gtr %dg%

(set

/a ld=

%da%

-%dg%

)else(if

%mo%==

1(set/a ly=

%ye%-1

)&(set

/a lm=12+

%mo%-1

)&(set

/a ld=31+

%da%

-%dg%

)else

(set

/a lm=

%mo%-1

if%mo%==

3(if%var%==

false

(set

/a ld=28+

%da%

-%dg%

)else

(set

/a ld=29+

%da%

-%dg%))

for%

%a in(2

4689

11)do(

if"%mo%"==

"%%a"

(set

/a ld=31+

%da%

-%dg%))

for%

%b in(5

781012)do

(if"%mo%"==

"%%b"

(set

/a ld=30+

%da%

-%dg%))

))if%lm% lss 10

set lm=

0%lm:~-1

%if%ld% lss 10

set ld=

0%ld:~-1

%set han=

%ly%

%lm%

%ld%

rem 需打包的模糊日誌名

set del_name=

*%ly%

-%lm%

-%ld%

*rem 獲取dg天前日期

set ye=

%date:~0,

4%set mo=

%date:~5,

2%set da=

%date:~8,

2%set dg=

15set

/a vy1=

%ye%%%

400set

/a vy2=

%ye%%%

4set

/a vy3=

%ye%%%

100if

%vy1%==

0(set var=

true

)else(if

%vy2%==

0(if%vy3%==

0(set var=

false

)else

(set var=

true))

else

(set var=

false))

set ly=

%ye%

set lm=

%mo%

if%mo:~0,

1%==

0(set mo=

%mo:~1,

1%)if

%da:~0,

1%==

0(set da=

%da:~1,

1%)if

%da% gtr %dg%

(set

/a ld=

%da%

-%dg%

)else(if

%mo%==

1(set/a ly=

%ye%-1

)&(set

/a lm=12+

%mo%-1

)&(set

/a ld=31+

%da%

-%dg%

)else

(set

/a lm=

%mo%-1

if%mo%==

3(if%var%==

false

(set

/a ld=28+

%da%

-%dg%

)else

(set

/a ld=29+

%da%

-%dg%))

for%

%a in(2

4689

11)do(

if"%mo%"==

"%%a"

(set

/a ld=31+

%da%

-%dg%))

for%

%b in(5

781012)do

(if"%mo%"==

"%%b"

(set

/a ld=30+

%da%

-%dg%))

))if%lm% lss 10

set lm=

0%lm:~-1

%if%ld% lss 10

set ld=

0%ld:~-1

%set dateago=

%ly%

%lm%

%ld%

rem 設定日誌目錄

set log_file1=file1

set log_file2=file2

set log_file3=file3...

for%

%i in

(%log_file1%

,%log_file2%

,%log_file3%)do

(rem 建立日誌資料夾

md %

%i\%han%

rem 移動需刪除的日誌至資料夾

for/f "delims="

%%a in

('dir /b %%i\%del_name%')do

(rem echo %

%amove %

%i\%

%a %

%i\%han%

)rem 打包資料夾

"c:\program files\winrar\winrar.exe" a -r -ep1 -df %

%i\%han%

.rar %

%i\%han%

rem 刪除dg天前當天的日誌

del %

%i\%dateago%

.rar /q

)

BAT批處理打包專案

批處理複製資料夾以及指定檔案.bat 將指定專案打包到project對應目錄下面。這裡是用的c 專案方案 echo off echo 正在準備刪除.rd s q projects echo 正在生成目錄.md projects md projects pos md projects manage m...

bat批量剪下命令 批處理 0 批處理命令簡介

什麼是批處理 批處理 batch 也稱為批處理指令碼。顧名思義,批處理就是對某物件進行批量的處理。批處理檔案的擴充套件名為bat。目前比較常見 的批處理包含兩類 dos批處理和ps批處理。ps批處理是基於強大的編輯軟體photoshop的,用來批量處理的指令碼 而dos批處理則是基於dos命令的,用...

使用批處理備份日誌

客戶要求jboss日誌級別是debug,這個級別的日誌,每天估計得有3g的日誌產生,伺服器的硬碟可吃不消啊,呵呵。就想使用備份的機制,把前一天的日誌打包,然後刪除原檔案。這種文字日誌,一壓縮就很想了,3g壓縮完估計也就200m吧。d systemutil winrar rar a ag k r s ...