Ms-Dos - MOVER ARCHIVOS BAT

 
Vista:

MOVER ARCHIVOS BAT

Publicado por Yess.crc (2 intervenciones) el 12/10/2017 18:33:15
Buenos días, tengo un asunto que no logro resolver, necesito mover archivos de una carpeta a otra con un .bat pero que sean de 5 días antes de la fecha actual, ayuda por favoor.
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

MOVER ARCHIVOS BAT

Publicado por Antoni Masana (811 intervenciones) el 13/10/2017 07:37:50
Esto que quieres hacer es bastante complejo para hacerlo en un BAT por que esta herramiento no facilitar realizar este tipo de cosas.
De entrada hay otras herramientas algo mejores y te nombro algunas en orden de preferencia: Visual Basic, Perl, Python, Visual Basic Scripts.

Problemas con un BAT
- ¿Que formato de fecha tienes? ¿ DD/MM/AAA o MM/DD/AAAA ?
- Calcular la fecha de hace 5 días.
- De los días del 6 al 31 no hay problema, en el resto necesitas cambiar de mes
- Saber cuantos días tiene un mes.
- Cambiar de año.
- Los años bisiestos.
- A la hora de trabajar con el comando SET tener en cuenta los valores del 1 al 9 para poner el 0 de la izquierda.
- Los valores 08 y 09 no son válidos en el SET

El resto es un poco más sencillo pero no es simple.

¿Tienes alguna cosa realizada?
¿Tienes alguna idea de por donde empezar?

Es que me da un poco de pereza empezar con esto por la cantidad de problemas de da. ¿Has buscado en la WEB o en GOOGLE?

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

MOVER ARCHIVOS BAT

Publicado por Yess.crc (2 intervenciones) el 13/10/2017 18:58:58
Si estuve buscando por todos sitios en google, lo más que he llegado a tener es esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@ECHO OFF
SET AA=%DATE:~6,4%
SET MM=%DATE:~3,2%
SET DD=%DATE:~0,2%
 
SET /A FECHA=%DD%-3
SET HOY=%FECHA%/%MM%/%AA%
 
CD C:\A
FOR %%A IN (*.txt) DO CALL :MOVER %%A %%~TA
GOTO:EOF
 
:MOVER
IF (%HOY%) == (%2) MOVE %1 "C:\B\%1"
GOTO:EOF


Ya que hoy es fecha 13 mueve archivos hasta de 3 días atrás, ayer solo permitía de 2 días atrás. Pero claro que con este bat también he estado planteándome el tema de los años bisiestos, los días del mes. y cambiar de mes cuando los días vayan del 1 al 5, y en todo caso en Enero hacer incluso un cambio de año.
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
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

MOVER ARCHIVOS BAT

Publicado por Antoni Masana (811 intervenciones) el 08/11/2017 11:30:41
Después de ver tu mensaje estuve de vacaciones y tenía el proceso a medias.

Tiene en cuenta el cambio de mes y de año.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@echo off
set Fecha=%Date%
 
set DD=1%Fecha:~0,2%
set MM=1%Fecha:~3,2%
set AA=/%Fecha:~6,4%
 
set    Resta=5
set /A MesAnt=101+%Resta%
 
IF %DD% GEQ %MesAnt% goto Mismo_Mes
 
   set /A MM=%MM%-1
   if %MM% == 100 set /A AA=%AA%-1
   if %MM% == 100 set    MM=112
 
   if %MM% == 101 set FinMes=31
   if %MM% == 102 set FinMes=28
   if %MM% == 103 set FinMes=31
   if %MM% == 104 set FinMes=30
   if %MM% == 105 set FinMes=31
   if %MM% == 106 set FinMes=30
   if %MM% == 107 set FinMes=31
   if %MM% == 108 set FinMes=31
   if %MM% == 109 set FinMes=30
   if %MM% == 110 set FinMes=31
   if %MM% == 111 set FinMes=30
   if %MM% == 112 set FinMes=31
 
   set /A DD=%DD% + %FinMes%
 
:Mismo_Mes
   set /A DD=%DD%-%Resta%
 
@echo Hoy es... %Fecha% Hace 5 dias... %DD:~-2%/%MM:~-2%%AA% >>Day-5.txt

Espero te sirva aunque sea tarde la respuesta.

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