Jag fattar hur det fungerar nu. Jag hade fattat det tidigare om det inte varit 2012-12
När man kör date i CMD får du ut 2012-12-10 detta är vad du får utgå från.
2012-12-10 om vi översätter detta blir det
0123456789 (Så % har inget med saken att göra)
Så på month hoppar jag till position 5 och tar 2 siffror.
Och på year hoppar jag till position 2 och tar 2 siffror.
Hoppas det inte blev för rörigt.
@echo on
:: Name - iislogzip.bat
:: Description - Server Log File Manager
::
:: ========================================================
:: setup variables and parameters
:: ========================================================
:: generate date and time variables
:: När man kör date i CMD får du ut 2012-12-10 detta är vad du får utgå från.
:: 2012-12-10 om vi översätter detta blir det
:: 0123456789
:: Så på month hoppar jag till position 5 och tar 2 siffror
:: Och på year hoppar jag till position 2 och tar 2 siffror
set month=%DATE:~5,2%
set year=%DATE:~2,2%
::Get last month and check edge conditions
set /a lastmonth=%month%-1
if %lastmonth% equ 0 set /a year=%year%-1
if %lastmonth% equ 0 set lastmonth=12
if %lastmonth% lss 10 set lastmonth=0%lastmonth%
set yymm=%year%%lastmonth%
set logpath="F:\logzip"
set zippath="C:\Program Files (x86)\7-Zip\7z.exe"
set arcpath="F:\logzip\ZIP"
:: ========================================================
:: Change to log file path
:: ========================================================
cd /D %logpath%
:: ========================================================
:: zip last months IIS log files, move zipped file to archive
:: then delete old logs
:: ========================================================
%zippath% a -tzip ex%yymm%-logs.zip %logpath%\ex%yymm%*.log
move "%logpath%\*.zip" "%arcpath%"
del %logpath%\ex%yymm%*.log