WinBatch - BATCH para filtrar archivo segun nombre de un directorio

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 2 puestos en WinBatch (en relación al último mes)
Gráfica de WinBatch

BATCH para filtrar archivo segun nombre de un directorio

Publicado por Jaime (1 intervención) el 23/01/2019 16:38:06
Estimados es mi primer post en esta web y supongo estará bien donde posteo, les cuento... necesito filtrar archivos de un directorio según su nombre o fecha de creación/modificación, para después realizar un backup de los archivos mas recientes.... por ejemplo:

Tengo los siguientes archivos en un directorio:

archivo-1.xlsx --> Este es el archivo mas viejo
archivo-2.xlsx
archivo-3.xlsx --> Este es el archivo mas reciente o el mas nuevo

Quiero realizar un script que lea estos archivos de este directorio y detecte que el archivo-3 es el mas reciente (nuevo), esto para después realizar un backup de este archivo-3 en otra carpeta.

PD: Los archivos enrealidad tienen el siguiente formato: archivo_[año][mes][dia], como el siguiente: archivo_20190123, por lo que si tengo estos 3 archivos:

archivo_20190101
archivo_20190110
archivo_20190123

El ultimo, es decir, archivo_20190123 es el que quiero obtener para hacerle un backup.

MI PROBLEMA: Realizar el filtro de ese archivo.

Se me ocurrio realizar obviamente un Batch para realizar esto, sin embargo no me manejo mucho con scripts .bat y hasta el momento lo que llevo de código o la idea de código que tengo es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
set anio=%date:~6,4%
set mes=%date:~3,2%
set dia=%date:~0,2%
 
set fechaActual=%anio%%mes%%dia%
set/a cont=0
 
set directorio=C:\Users\miUsuario\Desktop\Cosas\directorioArchivos
 
for /r "%directorio%" %%x in (archivo_%anio%%mes%-*.xlsx) do (
	if %cont% == 0 (
		echo %%x
	)
	set/a cont+=1
)

PD_Final: Hasta el momento no guardo las rutas en una variable al hacer el loop, porque trataba de filtrar en el bucle para que me mostrara solo la 1era ruta del primer archivo, luego la 2da y asi, esto para guardarlos en una variable y después saber a cual aplicar el backup.... pero no logro filtrar el archivo mas reciente.

Eso, ojala me puedan echar una mano, porque estoy bien liado con el batch, también pensé en usar un lenguaje como Python porque este tiene arrays y esas cosas que me facilitarían el trabajo, pero ahí no puedo aplicar comandos directamente, por eso quería hacerlo en batch, eso y de antemanos muchas gracias.
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