Comprimir archivo con fecha del día anterior
Publicado por Lena (1 intervención) el 13/08/2015 19:01:54
Hola
Soy principiante en MS-Dos y necesito crear un BAT que me comprima el contenido de una carpeta agregando la fecha del día anterior, lo hice así:
Todo funciona bien, pero cuando llegue el primero de mes o el primero de enero, en lugar del 31, 30 ó 28, me pondrá 00 en el día...
Traté de arreglarlo con una función (o GOTO), también intenté anidar IFs pero no me lo está tomando de ninguna forma... ¿Cómo lo arreglo?
Agrego el código erróneo:
:CONTROLMESES
set /A mes=%mes%-1
if %mes% LEQ 9 set mes=0%mes%
if %mes% EQU 00 set mes=12&set /A anio=%anio%-1
set enero=01
set febrero=02
set marzo=03
set abril=04
set mayo=05
set junio=06
set julio=07
set agosto=08
set septiembre=09
set octubre=10
set noviembre=11
set diciembre=12
if %febrero% EQU %mes% set dia=28
if %abril% EQU %mes% set dia=30
if %junio% EQU %mes% set dia=30
if %septiembre% EQU %mes% set dia=30
if %noviembre% EQU %mes% set dia=30
if %enero% EQU %mes% set dia=31
if %marzo% EQU %mes% set dia=31
if %mayo% EQU %mes% set dia=31
if %julio% EQU %mes% set dia=31
if %agosto% EQU %mes% set dia=31
if %octubre% EQU %mes% set dia=31
if %diciembre% EQU %mes% set dia=31
:CONTROLMESES
pause[/code]
Soy principiante en MS-Dos y necesito crear un BAT que me comprima el contenido de una carpeta agregando la fecha del día anterior, lo hice así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
SET/A HOY=%date:~0,2%%date:~3,2%%date:~6,4%
::Restamos al dia un uno para obtener el dia anterior....
SET /A dia=%date:~0,2% - 1
SET mes=%HOY:~2,2%
SET/A anio=%date:~6,4%
::comprobamos si el valor de la resta es menor o igual al numero 9...
::Entonces le colocamos un 0 delante, ejemplo 01.02.03..,09
if %dia% LEQ 9 set dia=0%dia%
rar A -df Produccion_%dia%-%mes%-%anio%.rar *.DMP *.log
Todo funciona bien, pero cuando llegue el primero de mes o el primero de enero, en lugar del 31, 30 ó 28, me pondrá 00 en el día...
Traté de arreglarlo con una función (o GOTO), también intenté anidar IFs pero no me lo está tomando de ninguna forma... ¿Cómo lo arreglo?
Agrego el código erróneo:
1
2
3
4
5
6
7
8
9
10
11
@echo on
SET/A HOY=%date:~0,2%%date:~3,2%%date:~6,4%
::Se declaran las variables dia y mes como varchar
SET dia=%date:~0,2%
SET mes=%date:~3,2%
SET anio=%date:~6,4%
echo Produccion_%dia%-%mes%-%anio%
SET /A dia=%dia% -01
if %dia% LEQ 9 set dia=0%dia%
if %dia% EQU 00 goto(CONTROLMESES)
rar A -df Produccion_%dia%-%mes%-%anio%.rar *.DMP *.log
set /A mes=%mes%-1
if %mes% LEQ 9 set mes=0%mes%
if %mes% EQU 00 set mes=12&set /A anio=%anio%-1
set enero=01
set febrero=02
set marzo=03
set abril=04
set mayo=05
set junio=06
set julio=07
set agosto=08
set septiembre=09
set octubre=10
set noviembre=11
set diciembre=12
if %febrero% EQU %mes% set dia=28
if %abril% EQU %mes% set dia=30
if %junio% EQU %mes% set dia=30
if %septiembre% EQU %mes% set dia=30
if %noviembre% EQU %mes% set dia=30
if %enero% EQU %mes% set dia=31
if %marzo% EQU %mes% set dia=31
if %mayo% EQU %mes% set dia=31
if %julio% EQU %mes% set dia=31
if %agosto% EQU %mes% set dia=31
if %octubre% EQU %mes% set dia=31
if %diciembre% EQU %mes% set dia=31
:CONTROLMESES
pause[/code]
Valora esta pregunta
0