Permalänk
Medlem

Batch jobb

Tjenare jag har ett batch jobb som jag hittade. Och det gör det jag vill men, jag får inte rätt på year och month. Jag fattar inte logiken. Jag vill att den ska ta förra månadens loggar och zipa, flytta och sedan ta bort. Allt fungerar förutom jag inte förstår hur jag ska sätta set month=%DATE:~2,2% och set year=%DATE:~3,2%. Hoppas någon kan hjälpa mig.

set month=%DATE:~2,2%
set year=%DATE:~3,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="************"
set zippath="************"
set arcpath="************"

:: ========================================================
:: 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

Visa signatur

Hawaii

Permalänk

Hade jag kommit ihåg batch kodning så hade jag kunnat hjälpa dig, hoppas att någon annan med bättre minne får syn på tråden och kan hjälpa dig.

Visa signatur

« CITERA FÖR SVAR »

CPU: AMD Ryzen 7 3700X ║ MB: ASUS X570-PLUS ║ RAM: 32GB ║ GPU: GeForce GTX 1080 ║ PSU: EVGA SuperNOVA 750 G2 ║ SSD: Samsung 970 EVO+ 500GB ║

Permalänk
Medlem

Hittade inget bra, vi har gjort en .exe fil som spottar ut datum så vi slipper det där (massa bök med formatering beroende på "language settings") men kolla den här länken finns nåt liknande du har.

http://weblogs.asp.net/whaggard/archive/2005/08/18/423029.asp...

Visa signatur

i5-12600KF | Noctua NH-D15S Chromax Black | MSI MAG B660M | 32 GB G.Skill Trident Z | 3 * WD Black SN750 | Asus TUF OC RTX 3080 | Silverstone FT02 | Corsair RM750W | Samsung Odyssey G9 49" |

Permalänk
Medlem

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

Visa signatur

Hawaii