Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: mgonzalo en 12 Diciembre 2008, 13:29 pm



Título: ayuda con obtencion dia anterior me sale mal el año
Publicado por: mgonzalo en 12 Diciembre 2008, 13:29 pm
Vereis quiero generar un fichero diario p.e pcing-11.12.08.txt y despues comparar con el generado el dia anterior p.e pcing-10.12.08.txt
Pero al componer las fechas compongo perfectamente la de hoy 11.12.08 pero no la de ayer 10.12.08 ya que obtengo 10.12.00

¿me podeis ayudar? ¿porque obtengo 00 en vez de 08?

el fichero .bat es:
---------------------------------------------------------------------------------
@echo off
rem sacar fecha de hoy
setlocal ENABLEEXTENSIONS
call :dias
echo %var2%
call :dias1 %var2%
set /a j-=1
call :inc %j%
echo %dd%.%mm%.%'%0%yy%
l:
dir /s /o > p:\pcing-%var2%.txt
echo buscando diferencias 1
echo buscando diferencias 2
echo buscando diferencias 3
echo buscando diferencias 4
echo buscando diferencias 5
echo buscando diferencias 6
echo buscando diferencias 7
echo buscando diferencias 8
echo buscando diferencias 9
echo buscando diferencias 10
echo buscando diferencias 11
echo buscando diferencias 12
echo buscando diferencias 13
echo buscando diferencias 14
fc p:\pcing-%var2%.txt p:\pcing-%dd%.%mm%.%'%0%yy%.txt > p:\lispcing-dif.txt
echo acabo ya
endlocal
goto :EOF

:dias
set var=%date%
set var1=%var:~4%
set var2=%var1:/=.%
goto :EOF

:dias1
for /f "tokens=1,2,3 delims=-/." %%a in ("%1") do (
   set dd=%%a&set mm=%%b&set yy=%%c)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
goto :EOF

:inc
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
goto :EOF
--------------------------------------------------------------------------