Remova o número do meio de vários arquivos e copie

2

Eu tenho vários arquivos PDF no formato específico em uma pasta específica e para esses arquivos em particular eu preciso cortar o número do meio usando o arquivo bat e mover para a pasta de destino com o novo nome.

Detalhes

  • Pasta de origem: C:/roger/brawn

  • Destino: D:/var/lag

  • Formato do arquivo: eAWI_12345678_89101112_01Mar2018.pdf

Resultado desejado

Eu preciso cortar o 89101112 do nome do arquivo de origem original  e obter um resultado de eAWI_12345678_01Mar2018.pdf

Este formato de número de nome de arquivo é gerado dinamicamente usando variáveis em um aplicativo.

    
por DINE 01.03.2018 / 11:09

1 resposta

0

Você pode usar um loop FOR / F e definir o caractere de sublinhado nos nomes dos arquivos como um delimitador. Você pode usar tokens 1,2,3,* para concatenar variáveis posteriormente para compilar e analisar o nome do arquivo de origem e destino de acordo para uso posterior com o XCOPY

Script em lote

@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

Observação: o comando ECHO canaliza um F para o XCOPY seleciona implicitamente F para" arquivo ", pois especifica explicitamente o nome do novo arquivo de destino analisando o terceiro token no loop para ajude a obter o nome do arquivo desejado. O comando XCOPY é seguido pelo execução condicional (& &) confirmando que ela foi bem-sucedida e, em seguida, confirma a existência do novo arquivo de destino antes de excluir o arquivo original.

Mais recursos

por 02.03.2018 / 06:30