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.