Cambiar nombre por BAT si el nombre del archivo contiene "X"

Vera todos los meses unos clientes me envían unos archivos en formato .txt para cargarlos en el sistema, el problema es que hasta el día de hoy manualmente se le cambia el nombre a estos archivos para que el sistema lo reconozca como una base de datosfor

Los archivos están ubicados en una carpeta determinada y vienen con los siguientes nombres donde los últimos caracteres corresponden a la fecha en la que envían la información

La ruta de donde estan los archivos es %userprofile%/desktop/remesa

EMPR_RSL_DETA_593_770AAAAMMDD.txt

EMPR_RSL_RESU_593_770AAAAMMDD.txt

Lo que necesito es crear un bat que lea ese nombre y si el nombre contiene la palabra "DETA" lo renombre por HAB001.dat y si por el contrario contiene "RESU" lo renombre por ANEXO.txt

1 Respuesta

Respuesta
2

En principio parece sencillo y este bat podría servirte:

@echo off
set ruta=%userprofile%\desktop\remesa
del /q "%ruta%\HAB001.dat"
del /q "%ruta%\ANEXO.txt"
for /f "tokens=*" %%a in ('dir /b /s "%ruta%"') do (
   echo %%a ^^| find "DETA">nul && ren "%%a" HAB001.dat
   echo %%a ^^| find "RESU">nul && ren "%%a" ANEXO.txt
)

Borro previamente los archivos porque si existen el renombrado fallará. Y si hubiera más de un archivo que contenga DETA o RESU en el nombre fallarán los siguientes renombrados. Si esto supone un problema habría que estudiar el asunto para ver como se resuelve.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas