La Web del Programador: Comunidad de Programadores
 
    Pregunta:  66499 - FECHA DIA ANTERIOR EN NOMBRE DE ARCHIVO
Autor:  Maria Toledo
Buenos dias,
He utilizado con gran éxito, varias comentarios del foro para el tema de fechas en archivos .bat.

El problema actual, radica en que estoy renombrando un archivo .txt incluyendo como parte del nombre el dia anterior a la fecha actual.

Funciona correctamente, para todos los dias, pero el primero de cada mes, deberia tambien cambiar el mes actual por el anterior y no lo he logrado.
Si le resto 1 a la variable DD, funciona ok, pero si le resto 1 a la variable MM o MES, no toma el valor de la misma, siplemente la carga con -1.
Espero haber sido clara.
Desde ya muchas gracias.

Ejemplo:

set DD=%date:~0,2%
set AA=%date:~8,2%
set MM=%date:~3,2%

IF %DD%==01 GOTO mes

:mes
set MES=%MM%
set /a MES=MES - 1
set MM=%MES%
echo %MM%

set NOMBRE=Nomarch%DD%%MM%%AA%

  Respuesta:  masklet63
Mira a ver si esto es lo que querias:

@echo off
set DD=%date:~0,2%
set MM=%date:~3,2%
set AA=%date:~8,2%

if %DD%==01 goto mes
goto fin

:mes
set MES=%MM%
if %MES%==01 set /a MES=13
set /a MES=MES - 1
set MM=%MES%
echo %MM%

set NOMBRE=Nomarch%DD%%MM%%AA%

rem Prueba
echo %NOMBRE%

:fin
pause