Ms-Dos - Renombrar parte del nombre de archivos .BAT

 
Vista:
sin imagen de perfil

Renombrar parte del nombre de archivos .BAT

Publicado por Juan Carlos (1 intervención) el 29/10/2015 15:30:52
Estimados:

Primero que todo les agradezco vuestra ayuda en mi inquietud.

Explico detallamente:

Tengo un .bat que copia archivos desde distintas ubicaciones de red a una única carpeta local (facturas), el problema es que estos archivos vienen en la nomenclatura "FACT-12345-cualquiercosaquenomesirveparaguardarlos.pdf" y mi objetivo es que estas facturas queden en la carpeta "facturas" con el nombre solo hasta el numero de factura.

Ya he normalizado los nombres de los archivos por lo cual se que lo que necesito hacer es eliminar del nombre de archivo todo desde la posicion numero 10 hacia la derecha, con filemenu tools pude hacer esto en forma manual pero como este bat es una tarea diaria se me hace necesario que sea automatico.

Aquí les dejo unas lineas del bat

@echo off
echo ---------------------------
echo Conectar unidad de red
echo ---------------------------
net use H: \\servidor\carpetapublica /user:dominio\usuario contraseña
H:
xcopy "Usuarios\CONTABILIDAD\FACTURACION 2014\ENERO 2014" C:\sitios\clientes\facturacion /F /R /Y /I /D
xcopy "Usuarios\CONTABILIDAD\FACTURACION 2014\FEBRERO 2014" C:\sitios\clientes\facturacion /F /R /Y /I /D
xcopy "Usuarios\CONTABILIDAD\FACTURACION 2014\MARZO 2014" C:\sitios\clientes\facturacion /F /R /Y /I /D
xcopy "Usuarios\CONTABILIDAD\FACTURACION 2014\ABRIL 2014" C:\sitios\clientes\facturacion /F /R /Y /I /D

El bat detecta cambios en archivos y es incremental, puede que a alguien mas le sirva para un proposito parecido

Quedo muy atento a respuesta y agradezco mucho su tiempo
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 A.H.H

Renombrar parte del nombre de archivos .BAT

Publicado por A.H.H (216 intervenciones) el 02/11/2015 20:26:18
Hola mira este bat quizas lo puedas adaptar o llamarlo despues de que hayas copiado todas las carpetas a local.

lo que hace es renombrar todos los archivos .pdf que encuentra en el directorio y subdirectorios en el que ejecutes el bat, a la estructura que has mencionado en el port osea los primeros 10 caracteres y luego le añade la extension.

me explico: imagina que ya has copiado todas las carpetas a local, pues pones el archivo bat de este ejemplo dentro de la carpeta raiz del local y lo ejecutas y mirara dentro de subcarpetas tambien ya que al ponerle el modificador /R al comando for es recursivo.

pruebalo....

1
2
3
4
5
6
7
8
9
@echo off
for /R %%a in (*.pdf) do (set rutarchiv=%%a&set nomarchiv=%%~na&set extension=%%~xa&call :renombrar)
pause
goto:eof
 
:renombrar
set nomarchiv=%nomarchiv:~0,10%
ren  "%rutarchiv%" "%nomarchiv%%extension%"
echo Renombrado "%rutarchiv%" - "%nomarchiv%%extension%"



la variable %rutarchiv% recoge la ruta entera del archivo
la variable %nomarchiv% recoge solo el nombre del archivo.
la variable %extension% recoge solo la extension del archivo.
En la etiqueta :renombrar solo cogemos los 10 primeros caracteres de lo que haya dentro de %nomarchiv%
despues le añadimos la extension.


un saludo
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