Predmet:promjena i vracanje lokalnog datuma
ovaj BAT file sluzi da bi se zavarao neki program po pitanju datuma. Recimo, imamo program koji radi samo ako je lokalni datum 10.10.2010. Mozemo to i rucno podesiti, pokrenuti program, a onda priliom izlaska iz programa vratiti lokalni datum.
zxz: .bat datoteke nam mogu uvelike olakšati poslove, a pogotovo one koje stalno ponavljamo.
Batch (BAT) file radi sljedece:
1. uzima danasnji datum, pretvara ga u julianski broj i stavlja u varijblu julDanasnjiDatum
2. postavlja zeljeni datum kao danasnji datum, pretvara ga u julianskibroj i stavlja u varijablu julPostavljeniDatum
3. pokrecem program
4. nakon izlaska iz programa, moguce da je proslo pola noci i datum se uvecao za jedan dan. Mogao sam to ispitati i dodati samo jedan dan ali ima nekih ljudi ostave pc upaljen i po nekoliko dana. Htio sam da tocno se izracuna broj dana provedenih sa postavljenim datumom pa sam ...
5. pretvorio trenutni datum u julianskibroj i stavio u varijablu julTrenutniDatum
6. oduzimanjem julTrenutniDatum i julPostavljeniDatum dobijemo razliku u danima koju stavljamo u varijablu razlikaDana
7. dodajemo razlikaDana na julDanasnjiDatum (datum prije pokretanja programa)
8. pretvaramo julDanasnjiDatum u gregorijanski kalendar
PreuzmiIzvorni kôd (Text):echo off
CLS
SETLOCAL
REM danasnjiDatum=DATE
SET danasnjiDatum=%date:~4,2%-%date:~7,2%-%date:~10,4%
echo DANASNJI DATUM: %danasnjiDatum%
rem echo dan= %date:~4,2%
rem echo mjesec= %date:~7,2%
rem echo godina= %date:~10,4%
REM pretvori danasnjiDatum u julianski kalendar
SET mm= %date:~7,2%
SET dd=%date:~4,2%
SET year=%date:~10,4%
CALL :convjdate
SET julDanasnjiDatum=%jdate%
REM postaviDatum 10.10.2010 (ovo je datum koji moramo postaviti)
SET staviMjesec=10
SET staviDan=10
SET staviGodina=2010
DATE=%staviDan%-%staviMjesec%-%staviGodina%
REM pretvori postavljenji datum u julianski
SET mm= %date:~7,2%
SET dd=%date:~4,2%
SET year=%date:~10,4%
CALL :convjdate
SET julPostavljeniDatum=%jdate%
REM pokreni program imePrograma.exe
echo POSTAVLJENI DATUM PRIJE POKRETANJA PROGRAMA: %date%
echo POKRECEM PROGRAM
REM izbrisi REM u sljedecem retku
REM imePrograma.exe
echo DATUM NAKON IZLASKA IZ PROGRAMA: %date%
REM pretvori trenutni datum u julijanski
SET mm= %date:~7,2%
SET dd=%date:~4,2%
SET year=%date:~10,4%
CALL :convjdate
SET julTrenutniDatum=%jdate%
REM razlika trenutnog datuma i postavljenog datuma
set /a razlikaDana=%julTrenutniDatum%-%julPostavljeniDatum%
echo razlika u danima je: %razlikaDana% dana
REM dodajem razliku dana na danasnjiDatum
SET /A julNoviDatum=%julDanasnjiDatum%+%razlikaDana%
REM pretvori julNoviDatum u gregorijanski
CALL :convgdate
echo NOVI DANASNJI DATUM: %DD%-%MM%-%YYYY%
echo POSTAVI NOVI DANASNJI DATUM
REM postavi danasnji datum na novi datum
DATE=%DD%-%MM%-%YYYY%
echo DANASNJI DATUM: %date%
GOTO exit
REM POTPROGRAMI
REM konvertira gregorijanski kalendar u julianski broj
:convjdate
SET /A Month1 = ( %MM% - 14 ) / 12
SET /A Year1 = %year% + 4800
SET /A jdate = 1461 * ( %Year1% + %Month1% ) / 4 + 367 * ^
( %MM% - 2 -12 * %Month1% ) / 12 - ( 3 * ( ( %Year1% + %Month1% + 100 ) / ^
100 ) ) / 4 + ^%DD% - 32075
GOTO:EOF
REM konvertira julianski broj u gregorijanski kalendar
:convgdate
set /a L= %julNoviDatum%+68569, N= 4*L/146097, L= L-(146097*N+3)/4, I= 4000*(L+1)/1461001
set /a L= L-1461*I/4+31, J= 80*L/2447, K= L-2447*J/80, L= J/11
set /a J= J+2-12*L, I= 100*(N-49)+I+L
set /a YYYY= I, MM=100+J, DD=100+K
set MM=%MM:~-2%
set DD=%DD:~-2%
EXIT/B
Ovaj kod snimite kao pokrenime.bat i spremite ga u direktorij gdje se nalazi i program koji zelite zavarati. Kada zelite raditi sa programom dovucite pokazivac misa na file pokrenime.bat i kliknite dva puta, vrlo brzo kao da igrate neku svemirsku pucacinu.
zivot je moja domovina.
Ovaj post je ureden
1
puta. Posljednja izmjena 20.10.2016 12:59 od strane Avko.