Cita de: scalverth en 20 Septiembre 2012, 18:16 PM
El problema se me presenta al usar el comando de la siguiente manera:
me esta sumando 12 días, no 12 meses.
Pero es que la función de ese script es sumar días, no meses, en el mismo título lo pone bien claro .
CitarMediante fichero batch: sumar dÍas a una fechaFuncionar, funciona...
A ver si este code que hago te sirve (Además de sumar los meses, modifica la fecha del PC con la nueva fecha generada):
PD: No es perfecto al calcular la diferencia de los días (Ej. Febrero)
Código [Seleccionar]
@Echo off
:: By Elektro H@cker
REM Call :ADD_MONTH [FECHA] [MESES]
REM
REM Ejemplo:
Call :ADD_MONTH 01-01-2012 12
Call :ADD_MONTH 31-01-2013 1
Pause&Exit
::::::::::::::::::::::::::::::::::::
:ADD_MONTH
Setlocal enabledelayedexpansion
Set "Current_Date=/%DATE%" & Set "Current_Date=!Current_Date:/0=/!" & Set "Current_Date=!Current_Date:~1!"
Set "Custom_Date=-%~1" & Set "Custom_Date=!Custom_Date:-=/!" & Set "Custom_Date=!Custom_Date:.=/!" & Set "Custom_Date=!Custom_Date:/0=/!" & Set "Custom_Date=!Custom_Date:~1!"
For /F "Tokens=1-3 delims=/" %%A in ('Echo "%Custom_Date%"') DO (Set /A "DD=%%A", "MM=%%B", "YYYY=%%C", "X=%~2")
For /L %%# in (1,1,%X%) DO (
Set /A "COUNT+=1"
If "!MM!" EQU "12" (Set /A "MM=0, YYYY+=1", "COUNT+=0")
Set /A "MM+=1"
)
Echo Fecha actual : %Current_Date%
Echo Fecha introducida: %Custom_Date%
Echo Agregar meses : %~2
Echo %DD%/%MM%/%YYYY% | DATE >NUL && Echo Nueva fecha : %DD%/%MM%/%YYYY% | MORE || (Call :Retry)
ENDLOCAL
Goto:EOF
:Retry
For /L %%# in (1,1,31) DO (
set /A "DD-=1"
Echo !DD!/%MM%/%YYYY% | DATE >NUL && Echo Nueva fecha : !DD!/%MM%/%YYYY% | MORE && Goto:EOF
)
Saludos.