Batch - Fecha

Iniciado por Dragonasu, 22 Mayo 2015, 09:46 AM

0 Miembros y 1 Visitante están viendo este tema.

Dragonasu

Buenos dias, tenia un problema con las fechas en batch. Lo que necesito es conseguir en una variable la fecha de mañana, he buscado por todas partes y lo que encontre fue esto:
Citarhttp://foro.elhacker.net/scripting/sumarle_1_mes_a_la_fecha_actual_en_batch-t371646.0.html
Tambien pongo el codigo:
@echo off
setlocal ENABLEEXTENSIONS
call :dias %1
set /a j+=%2
call :inc %j%
echo %dd%/%mm%/%yy%
endlocal
goto :EOF

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


CitarY al final del código explica su forma de uso:
Si lo llamamos por ejemplo inc_fecha.cmd, la manera de invocarlo será:

inc_fecha  fecha  ndias

fecha: admite el formato:  dd.mm.aaaa, dd-mm-aaaa o dd/mm/aaaa
El resultado sumar los "ndias" tecleados a la fecha. (admite signo para restar días)
NOTA: la rutina es exacta teniendo presente la regla de bisiestos en centenarios.
La verdad que no entiendo nada del codigo y no se que puedo hacer para recoger la fecha de mañana en una variable. Si alquien me podria echar una mano estaria muy agradecido, un saludo.

Dragonasu

Me respondo a mi mismo ya que nadie no me ha ayudado.
Para los que tengan el mismo problema que yo aqui teneis la solucion:

::================================================
:: TOMORROW.BAT - Written by Paul Tomasi (c)2010
::
:: Function to return tomorrow's date
::================================================
@echo off

set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%

:loop
   set /a d+=1

   if %d% gtr 31 (
      set d=1
      set /a m+=1

      if %m% gtr 12 (
         set m=1
         set /a y+=1
      )
   )

xcopy /d:%m%-%d%-%y% /h /l "%~f0" "%~f0\" >nul 2>&1 || goto loop

echo %d%/%m%/%y%

::------------------------------------------------


+ explicacion