RE:crear carpeta con fecha posterior al actual
saludos
Pues al fin aqui lo tienes, uno de los problemas es que si el dia empieza con CERO, y al sumarle uno hace cosas raras, ejecutar set /? para detalles.
Ejecuta estas instrucciones primero para ver como te genera las variables
------------------------------------------------------------------------------------------------------
set DD=%DATE:~0,2%
set MM=%DATE:~3,2%
set AA=%DATE:~6,4%
echo %DD%
echo %MM%
echo %AA%
echo %DD%%MM%%AA%
REM Si te generan espacios usa
set DD=%date:~0,2%
set MM=%date:~3,2%
set AA=%date:~6,4%
echo %DD%
echo %MM%
echo %AA%
echo %DD%%MM%%AA%
-----------------------------------------------------------------------------------------------------
El bat intenta primero con día más uno para verificar el cambio de fecha, despues con un cambio de mes dia=01 mes+1, y finalmente esta el caso de fin de año, dia 01, mes 01, año+1
En los ultimos dos casos hay que dar un ENTER para que intente el cambio de fecha, lo he probado para los tres casos y me genera las carpetas correctamente, espero que no tengas problemas.
echo off
set ORI=%DATE%
set CERO=0
echo %ORI%
echo %CERO%
REM Identificamos si la fecha tiene un solo digito
REM **********************************************
set dd_c=%DATE:~0,1%
echo %dd_c%
REM **********************************************
REM Para un solo digito se setean las variales como
REM ***********************************************
if %dd_c% EQU 0 set dd=%DATE:~1,1%
if %dd_c% EQU 0 set /a dd=dd + 1
if %dd_c% EQU 0 set N_DD=%CERO%%dd%
REM Para dos digitos se setean las variales como
REM ***********************************************
if %dd_c% NEQ 0 set dd=%DATE:~0,2%
if %dd_c% NEQ 0 set /a dd=dd + 1
if %dd_c% NEQ 0 set N_DD=%dd%
echo *****************MIS VARIABLES****************
echo %N_DD%
echo %dd_c%
REM **********************************************
set mm_c=%DATE:~3,1%
if %mm_c% NEQ 0 set mm=%DATE:~3,2%
if %mm_c% EQU 0 set mm=%DATE:~4,1%
set /a mm=mm + 1
set N_MM=%mm%
set DD=%DATE:~0,2%
set AA=%DATE:~6,4%
set MM=%DATE:~3,2%
set /a YYYY=AA +1
REM ***Se crea la fecha y folder con día más uno***
REM ***********************************************
set SIGUE=%N_DD%%ORI:~2,8%
set FOLDER=%N_DD%%MM%%AA%
echo %SIGUE%
echo %FOLDER%
REM pause
REM *********Hacemos el cambio de fecha************
REM ******INTENTAMOS PRIMERO CON DIA MAS UN0*******
REM *******DESPUES CON DIA 01 Y MES MAS UNO********
REM ******Y FINALMENETE DIA 01 Y AÑO MAS UNO*******
:validar
date %SIGUE%
set ACTUAL=%DATE%
REM Si la variable SIGUE es valida, cambia la fecha
REM ***********************************************
IF %ACTUAL% EQU %SIGUE% GOTO si
REM Si la variable SIGUE no es valida hay que calcularla
REM ****************************************************
IF %ACTUAL% NEQ %SIGUE% GOTO no
:si
REM ********Cambio la fecha > valida.txt***********
REM *************Se crea carpeta*******************
mkdir %FOLDER%
goto salir
:no
echo No hay cambio > valida.txt
REM Se debe adecuar la fecha
IF %MM% EQU 12 goto mes
REM Se cambia a día primero y mes mas uno
REM ***********CAMBIO DE MES*************
set DD_ORI=01
set dd=%DD_ORI%
set SIGUE=%DD_ORI%/%N_MM%/%AA%
set FOLDER=%DD_ORI%%N_MM%%AA%
echo %sigue%
goto validar
:mes
REM Se cambia a dia primero y mes primero
REM ***********CAMBIO DE AÑO*************
set DD_ORI=01
set MM_ORI=01
REM Se aumenta el año mas uno
set SIGUE=%DD_ORI%/%MM_ORI%/%YYYY%
set FOLDER=%DD_ORI%%MM_ORI%%YYYY%
echo %SIGUE%
goto validar
goto salir
:salir
REM Le regresamos la fecha original al sistema
REM ***********************************************
date %ORI%
REM pause