@echo on
GOTO START
REM /****************************************************************/
REM * author: wbhuang
REM * time: 20130827
REM /****************************************************************/
:START
REM SET /P today="Input Date: "
SET logpath=
SET today=%date:~,10%
SET year=%today:~,4%
SET month=%today:~5,2%
SET day=%today:~8,2%
REM /* 是否是闰年 */
SET /a ytype="!(year%%4)&!(!(year%%100)|!(year%%400))"
REM ECHO %ytype%
REM /* 获取昨天日期 */
IF %month%%day%==0101 GOTO CASE01
IF %month%%day%==0201 GOTO CASESMALLMONTH
IF %month%%day%==0301 GOTO CASE03
IF %month%%day%==0401 GOTO CASESMALLMONTH
IF %month%%day%==0501 GOTO CASEBIGMONTH
IF %month%%day%==0601 GOTO CASESMALLMONTH
IF %month%%day%==0701 GOTO CASEBIGMONTH
IF %month%%day%==0801 GOTO CASEBIGMONTH
IF %month%%day%==0901 GOTO CASESMALLMONTH
IF %month%%day%==1001 GOTO CASESMALLMONTH
IF %month%%day%==1101 GOTO CASE11
IF %month%%day%==1201 GOTO CASE12
IF %day%==02 GOTO CASESINGLENUM
IF %day%==03 GOTO CASESINGLENUM
IF %day%==04 GOTO CASESINGLENUM
IF %day%==05 GOTO CASESINGLENUM
IF %day%==06 GOTO CASESINGLENUM
IF %day%==07 GOTO CASESINGLENUM
IF %day%==08 GOTO CASESINGLENUM
IF %day%==09 GOTO CASESINGLENUM
SET /A day=day-1
SET yestoday=%year%-%month%-%day%
GOTO LOGCOMPRESS
:CASE01
SET /A y=%year%-1
SET yestoday=%y%-12-31
GOTO LOGCOMPRESS
:CASE03
IF 1==%ytype% (
SET /A m=%month:~1,1%-1
SET yestoday=%year%-0%m%-28
) ELSE (
SET /A m=%month:~1,1%-1
SET yestoday=%year%-0%m%-29
)
GOTO LOGCOMPRESS
:CASESMALLMONTH
SET /A m=%month:~1,1%-1
SET yestoday=%year%-0%m%-31
GOTO LOGCOMPRESS
:CASEBIGMONTH
SET /A m=%month:~1,1%-1
SET yestoday=%year%-0%m%-30
GOTO LOGCOMPRESS
:CASE11
SET /A m=%month:~1,1%-1
SET yestoday=%year%-%m%-30
GOTO LOGCOMPRESS
:CASE12
SET /A m=%month:~1,1%-1
SET yestoday=%year%-%m%-31
GOTO LOGCOMPRESS
:CASESINGLENUM
SET /A d=day-1
SET yestoday=%year%-%month%-0%d%
GOTO LOGCOMPRESS
REM /* 压缩日志文件 */
:LOGCOMPRESS
ECHO %yestoday%
"C:\Program Files\WinRAR\RAR.exe" a logFile.%yestoday%.rar logFile.%yestoday%.log
GOTO END
:END
PAUSE