Ms-Dos - Bat para asignar fecha en nombre de archivo

 
Vista:

Bat para asignar fecha en nombre de archivo

Publicado por Luis (1 intervención) el 19/03/2014 01:15:43
Estimad@s expertos. Me pueden ayudar por favor?

Tengo un bat muy sencillo, el cual crea un archivo cuyo nombre del archivo tiene la palabra "inicio" y la fecha del día anterior. El problema que tengo es cuando es primer dia del mes, pone una fecha errónea. El código es el siguiente:

@echo off

set anio=%date:~8,2%
set mes=%date:~3,2%
set dia=%date:~0,2%
set /a dia=dia - 1


echo >> "D:\Mis Documentos\Borrar\Inicio%anio%%mes%%dia%.ini"

El día de hoy, 18 de Marzo dejó el archivo siguiente: Inicio140317.ini
El problema es que simulando que fuera 01 de Marzo, deja el archivo: Inicio14030.ini

Además, todo debe estar en el formato AAMMDD.ini

Gracias y quedo al pendiente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Bat para asignar fecha en nombre de archivo

Publicado por Antoni Masana (811 intervenciones) el 19/03/2014 07:23:48
Buenos días Luis

Los pasos a seguir son los siguientes

Primera parte

Después de restar 1 al DIA
- Si DIA es igual a cero resta 1 al MES
- Si MES es igual a cero resta 1 al AÑO

Segunda parte

- SI MES es igual a CERO signa 12 al MES
- Si DIA es igual a CERO asigna a DIA el numero de días del valor de MES es decir
IF MES = 12 set DIA=31
IF MES = 11 set DIA=30
etc
Cuidado con los años bisiestos

Tercera parte

- SI DIA es menor de 10 y tiene un solo digito pon un cero delante :

FOR %%a IN (1 2 3 4 5 6 7 8 9) DO IF (%DIA%) == (%a) set DIA=0%DIA%

- SI MES es menor de 10 y tiene un solo digito pon un cero delante:

FOR %%a IN (1 2 3 4 5 6 7 8 9) DO IF (%MES%) == (%a) set MES=0%MES%

Y ya tienes un proceso que será capaz de restar 1 día al 01/01/2015

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar