Elimine el número del medio de varios archivos y copie

Elimine el número del medio de varios archivos y copie

Tengo varios archivos PDF en el formato específico en una carpeta específica y para esos archivos en particular necesito recortar el número del medio usando el archivo bat y moverme a la carpeta de destino con el nuevo nombre.

Detalle

  • Carpeta de origen: C:/roger/brawn

  • Destino: D:/var/lag

  • Formato de archivo: eAWI_12345678_89101112_01Mar2018.pdf

Resultado deseado

necesito recortar el89101112del nombre del archivo fuente original y obtener un resultado deeAWI_12345678_01Mar2018.pdf

Este formato de número de nombre de archivo se genera dinámicamente utilizando variables en una aplicación.

Respuesta1

Puedes usar unPARA /Fbucle y establezca el carácter de subrayado en los nombres de los archivos como delimitador. Puede utilizar tokens 1,2,3,*para concatenar variables posteriormente para crear y analizar el nombre del archivo de origen y de destino en consecuencia para su uso posterior con elXCOPIARcomando para obtener el resultado deseado.

Guión por lotes

@ECHO ON
SET Source=c:/roger/brawn
SET Destination=D:/var/lag
FOR /F "TOKENS=1,2,3,* DELIMS=_" %%F IN ('DIR /B /A-D "%source%\*.pdf"') DO ECHO F | XCOPY /Y /F "%source%\%%F_%%G_%%H_%%I" "%Destination%\%%F_%%G_%%I" && IF EXIST "%Destination%\%%F_%%G_%%I" DEL /Q /F "%source%\%%F_%%G_%%H_%%I"
EXIT

Nota:ElECOcanalizaciones de comando y FalXCOPIARcomando por lo que implícitamente selecciona F"archivo", ya que especifica explícitamente el nuevo nombre del archivo de destino analizando el tercer token en el bucle para ayudar a obtener el nombre del archivo deseado. ElXCOPIAREl comando es seguido por elejecución condicional (&&)confirma que fue exitoso y luego confirma la existencia del nuevo archivo de destino antes de eliminar el archivo de origen original.


Recursos adicionales

información relacionada